Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
MsgBox(PerformanceSampling.GetSampleDurationText(0))
End Sub
'---------------------------------------------------------
'ГОРАЗДО БОЛЕЕ ЭФФЕКТИВНЫЙ АЛГОРИТМ!
'Для имитации создания типичного набора строк используется
'конструктор строк (String Builder)
'---------------------------------------------------------
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
'Вызвать
сборщик мусора, чтобы тест
'начинался с чистого состояния.
'ПРИБЕГАЙТЕ К ЭТОЙ МЕРЕ ТОЛЬКО В ЦЕЛЯХ ТЕСТИРОВАНИЯ! Вызовы
'сборщика мусора в программах вручную будут приводить к снижению
'общей производительности приложений!
System.GC.Collect
Dim sb As System.Text.StringBuilder = _
New System.Text.StringBuilder
Dim total_result As String
Dim numberToStore As Integer
PerformanceSampling.StartSample(1, "StringBuilder")
Dim outer_loop As Integer
For outer_loop = 1 To LOOP_ITERATIONS
'Очистить конструктор строк
sb.Length = 0
'Очистить строку со старым результатом
total_result = ""
'Выполнять цикл до максимального значения x_counter, каждый раз
'присоединяя очередную тестовую строку к рабочей строке
Dim x_counter As Integer
For x_counter = 1 To COUNT_UNTIL
sb.Append(numberToStore)
sb.Append(", ")
'Увеличить значение счетчика
numberToStore = numberToStore + 1
Next
'Имитируем выполнение некоторых операций над строкой...
total_result = sb.ToString
Next
PerformanceSampling StopSample(1)
'Отобразить длину строки
MsgBox("Длина строки: " + total_result.Length.ToString)
'Отобразить строку
MsgBox("String : " + total_result)
'Отобразить длительность интервала времени, ушедшего на вычисления
MsgBox(PerformanceSampling.GetSampleDurationText(1))
End Sub
Примеры
Листинг 9.1. Код для управления выполнением одиночной задачи фоновым потоком
Option Strict On
Imports System
Public Class ThreadExecuteTask
'Перечисляем возможные состояния
Public Enum ProcessingState
'-------------------
'Начальное состояние
'-------------------
'Перечисляем возможные состояния
notYetStarted
'-----------------
'Рабочие состояния
'-----------------
'Ожидание запуска фонового потока
waitingToStartAsync
'Выполнение кода в фоновом потоке
running
'Запросить отмену выполнения вычислений
requestAbort
'--------------------
'Состояния завершения
'--------------------
'Состояние завершения: выполнение фонового потока
'успешно завершено
done
'Состояние завершения: выполнение потока отменено
'до его завершения
aborted
End Enum
Private m_processingState As ProcessingState
Public Delegate Sub ExecuteMeOnAnotherThread(_
ByVal checkForAborts As ThreadExecuteTask)
Private m_CallFunction As ExecuteMeOnAnotherThread
Private m_useForStateMachineLock As Object
Public Sub New(ByVal functionToCall As ExecuteMeOnAnotherThread)
'Создать объект, который мы можем использовать в конечном автомате
'в целях блокировки
m_useForStateMachineLock = New Object
'Обозначить готовность к началу выполнения
m_processingState = ProcessingState.notYetStarted
'Сохранить функцию, которую необходимо вызвать
'в новом потоке
m CallFunction = functionToCall
Поделиться:
Популярные книги
Игра топа. Революция
3. Игра топа
Фантастика:
фэнтези
7.45
рейтинг книги
Кровь на эполетах
3. Штуцер и тесак
Фантастика:
альтернативная история
7.60
рейтинг книги
Темный Охотник
1. КО: Темный охотник
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Измена. Мой заклятый дракон
Любовные романы:
любовно-фантастические романы
7.50
рейтинг книги
Император поневоле
6. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Восход. Солнцев. Книга V
5. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Пограничная река. (Тетралогия)
Пограничная река
Фантастика:
фэнтези
боевая фантастика
9.13
рейтинг книги
Гром над Империей. Часть 2
6. Гром над миром
Фантастика:
фэнтези
попаданцы
5.25
рейтинг книги
Идеальный мир для Лекаря 7
7. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Адепт. Том второй. Каникулы
7. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.05
рейтинг книги
Здравствуй, 1985-й
2. Девяностые
Фантастика:
альтернативная история
5.25
рейтинг книги
Вечный. Книга V
5. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Внешники такие разные
Вселенная S-T-I-K-S
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Возвышение Меркурия. Книга 8
8. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00