Чтение онлайн

на главную - закладки

Жанры

Программирование мобильных устройств на платформе .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)

 '--------------------------------

 'Показать результаты пользователю

 '--------------------------------

Поделиться:
Популярные книги

Древесный маг Орловского княжества 10

Павлов Игорь Васильевич
10. Орловское княжество
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Древесный маг Орловского княжества 10

Жена неверного генерала, или Попаданка на отборе

Удалова Юлия
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Жена неверного генерала, или Попаданка на отборе

Юнлинг

Метельский Николай Александрович
Фантастика:
героическая фантастика
космическая фантастика
попаданцы
8.35
рейтинг книги
Юнлинг

Убивать чтобы жить 6

Бор Жорж
6. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 6

Интриганка

Шелдон Сидни
Приключения:
исторические приключения
9.24
рейтинг книги
Интриганка

Воронцов. Перезагрузка

Тарасов Ник
1. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фантастика: прочее
5.00
рейтинг книги
Воронцов. Перезагрузка

Рассвет русского царства 3

Грехов Тимофей
3. Новая Русь
Фантастика:
историческое фэнтези
альтернативная история
5.00
рейтинг книги
Рассвет русского царства 3

#Бояръ-Аниме. Газлайтер. Том 13

Володин Григорий Григорьевич
13. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
фэнтези
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 13

Лекарь Империи 4

Карелин Сергей Витальевич
4. Лекарь Империи
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Лекарь Империи 4

Кодекс Охотника. Книга XIX

Винокуров Юрий
19. Кодекс Охотника
Фантастика:
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XIX

Старый, но крепкий 5

Крынов Макс
5. Культивация без насилия
Фантастика:
рпг
аниме
уся
фэнтези
5.00
рейтинг книги
Старый, но крепкий 5

Возмутитель спокойствия

Владимиров Денис
1. Глэрд
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Возмутитель спокойствия

Возвращение

Кораблев Родион
5. Другая сторона
Фантастика:
боевая фантастика
6.23
рейтинг книги
Возвращение

Адепт

Листратов Валерий
4. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Адепт