Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
'1,2 секунды
System.Threading.Thread.Sleep(1200)
'Известить пользователя текстовым сообщением о завершении работы
'(текст обновляется всякий раз, когда ПИ выполняет обычное обновление
'экрана)
Label1.Text = "Работа успешно завершена!"
'Избавиться от курсора ожидания
System.Windows.Forms.Cursor.Current = _
System.Windows.Forms.Cursors.Default
End Sub
Листинг 7.4. Сравнение производительности двух алгоритмов, в одном из которых используются исключения, а во втором — нет
'==================================================================
'Примечание. В этом примере используется класс PerformanceSampling,
' определенный ранее в этой главе. Убедитесь в том, что
' этот класс включен в проект
'ТЕСТОВАЯ ФУНКЦИЯ:
'Сложить n1 и n2 и возвратить результат
'в n3
' Возвращаемое значение:
' TRUE: если результат положителен
' FALSE: если результат отрицателен
'==================================================================
Function returnFalseIfLessThanZero_Add2Numbers( _
ByVal n1As Integer, ByVal n2 As Integer, _
ByRef n3 As Integer) As Boolean
n3 = n1 + n2
'Результат меньше 0?
If (n3 < 0) Then
Return False
End If
Return True
End Function
'========================================================================
'ТЕСТОВАЯ ФУНКЦИЯ:
'Сложить n1 и n2 и возвратить результат
'в n3
'Если n3 меньше 0, то функция ПЕРЕДАЕТ УПРАВЛЕНИЕ ОБРАБОТЧИКУ ИСКЛЮЧЕНИЙ.
'В противном случае возвращается TRUE
'========================================================================
Function exceptionIfLessThanZero_Add2Numbers( _
ByVal n1As Integer, ByVal n2As Integer, _
ByRef n3 As Integer) As Boolean
n3 = n1 + n2
'Результат меньше 0?
If (n3 <0) Then
Throw New Exception("Результат меньше 0!")
End If
Return True
End Function
'=======================================================
'Осуществляет многократные вызовы простой функции и
'измеряет общее время выполнения
'Вызываемая функция НЕ приводит к возбуждению исключений
'=======================================================
Private Sub buttonRunNoExceptionCode_Click(ByVal senderAs System.Object, _
ByVal eAs System.EventArgs) Handles buttonRunNoExceptionCode.Click
Const TEST_NUMBERAs Integer = 0
Dim numberItterations As Integer
numberItterations = _
CInt(textBoxNumberAttempts.Text)
'Отобразить количество итераций, которые предстоит выполнить
ListBox1.Items.Add("=>" + numberItterations.ToString + " итераций")
Dim count_SumLessThanZero As Integer
Dim dataOut As Integer
'----------------
'Запустить таймер
'----------------
PerformanceSampling.StartSample(TEST_NUMBER, "Исключения отсутствуют")
'------------------------------------------------------
'Выполнить цикл, в котором осуществляется вызов функции
'------------------------------------------------------
count_SumLessThanZero = 0
Dim sumGreaterThanZero As Boolean
Dim i As Integer
While (i < numberItterations)
'=========================
'Вызвать тестовую функцию!
'=========================
sumGreaterThanZero = _
returnFalseIfLessThanZero_Add2Numbers(-2, -3, dataOut)
If (sumGreaterThanZero = False) Then
count_SumLessThanZero = count_SumLessThanZero + 1
End If
i = i + 1
End While
'-----------------
'Остановить таймер
'-----------------
PerformanceSampling.StopSample(TEST_NUMBER)
'--------------------------------
'Показать результаты пользователю
'--------------------------------
Поделиться:
Популярные книги
Наследие Маозари 5
5. Наследие Маозари
Фантастика:
фэнтези
юмористическое фэнтези
5.00
рейтинг книги
Убивать, чтобы жить
1. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Черный Маг Императора 23
23. Черный маг императора
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Кодекс Охотника XXXI
31. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Анти-Ксенонская Инициатива
7. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Иной. Том 5. Адская работа
5. Иной в голове
Фантастика:
боевая фантастика
городское фэнтези
технофэнтези
рпг
5.00
рейтинг книги
Вечный. Книга V
5. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Волкодав
1. Волкодав
Фантастика:
фэнтези
героическая фантастика
9.46
рейтинг книги
Администратор
14. Мое пространственное убежище
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Драчуны
Проза:
советская классическая проза
5.00
рейтинг книги
Звездная Кровь. Экзарх II
2. Экзарх
Старинная литература:
прочая старинная литература
5.00
рейтинг книги
Юнлинг
Фантастика:
героическая фантастика
космическая фантастика
попаданцы
8.35
рейтинг книги
Хозяин Стужи 2
2. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
5.75
рейтинг книги
Наемный корпус
5. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00