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

>'---------------

>Sub changeDayOfTravel_test(ByVal kindOfTest As testType)

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

> System.Windows.Forms.Cursor.Current = _

>  System.Windows.Forms.Cursors.WaitCursor


> 'Начать с известной даты

> Dim newDate As System.DateTime

> newDate = System.DateTime.Today

> changeDayOfTravel_textColumnLookup(TEST_CREDIT_CARD, newDate)


> 'ДОПУСТИМО ТОЛЬКО ДЛЯ ТЕСТОВОГО КОДА!!!

> 'Вызов сборщика мусора в коде ЗАМЕДЛИТ работу вашего приложения!

> System.GC.Collect()

> Const testNumber As Integer = 0


> 'Настроить соответствующим образом в зависимости от вида выполняемого теста

> Select Case (kindOfTest)

> Case testType.textColumnLookup

>  PerformanceSampling.StartSample(testNumber, _

>   "Text based Column lookup.")

> Case testType.cachedIndexLookup

>  PerformanceSampling.StartSample(testNumber, _

>   "Cached Column Index lookup.")

> Case testType.cachedColumnObject

>  PerformanceSampling.StartSample(testNumber, _

>   "Cached Column objects")

> Case Else

>  Throw New Exception("Unknown state!")

> End Select


> 'Выполнить тест!

> Dim testCount As Integer

> For testCount = 1 To NUMBER_TEST_ITERATIONS

>  'Передвинуть дату вперед на один день

>  newDate = newDate.AddDays(1)

>  Dim numberRecordsChanged As Integer = 0


>  'Какой вид теста мы выполняем?

>  Select Case (kindOfTest)

>  Case testType.textColumnLookup

>   'НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Просмотреть все имена, используя СТРОКИ

>   numberRecordsChanged = _

>    changeDayOfTravel_textColumnLookup( _

>    TEST_CREDIT_CARD, newDate)

>  Case testType.cachedIndexLookup

>   'ЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированные индексы

>   numberRecordsChanged = _

>    changeDayOfTravel_cachedColumnIndex( _

>    TEST_CREDIT_CARD, newDate)

>  Case testType.cachedColumnObject

>   'НАИЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированные объекты

>   numberRecordsChanged = _

>    changeDayOfTravel_CachedColumns( _

>    TEST_CREDIT_CARD, newDate)

>  End Select

>  'Убедиться в том, что тест выполняется, как и ожидалось

>  If (numberRecordsChanged <> 1) Then

>   MsgBox("No matching records found. Test aborted!")

>   Return

>  End If

> Next

> 'Получить время, которое потребовалось для выполнения теста

> PerformanceSampling.StopSample(testNumber)


> 'Обычный курсор

> System.Windows.Forms.Cursor.Current = _

>  System.Windows.Forms.Cursors.Default


> 'Отобразить результаты выполнения теста

> Dim runInfo As String = NUMBER_TEST_ITERATIONS.ToString() + _

>  "x" + DUMMY_ROWS_OF_DATA.ToString() + ": "

> MsgBox(runInfo + _

>  PerformanceSampling.GetSampleDurationText(testNumber))

>End Sub


>'ФУНКЦИЯ ПОИСКА, ОБЛАДАЮЩАЯ НИЗКОЙ ПРОИЗВОДИТЕЛЬНОСТЬЮ

>Private Function changeDayOfTravel_textColumnLookup( _