Программирование мобильных устройств на платформе .NET Compact Framework (Салмре) - страница 540

>  total_result = ""


>  'Выполнять цикл до максимального значения x_counter, каждый раз

>  'присоединяя очередную тестовую строку к рабочей строке

>  Dim x_counter As Integer

>  For x_counter = 1 To COUNT_UNTIL

>   total_result = total_result + numberToStore.ToString() + ", "


>   'Увеличить значение счетчика

>   numberToStore = numberToStore + 1

>  Next

> Next

> PerformanceSampling.StopSample(0)


> 'Отобразить длину строки

> MsgBox("String Length: " + total_result.Length.ToString())

> 'Отобразить строку

> MsgBox("String : " + total_result)

> 'Отобразить длительность интервала времени, ушедшего на вычисления

> 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 (производительность и многопоточное выполнение)

Листинг 9.1. Код для управления выполнением одиночной задачи фоновым потоком

>Option Strict On

>Imports System

>Public Class ThreadExecuteTask

>'Перечисляем возможные состояния