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

ЖАНРЫ

Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:

System.Windows.Forms.Cursors WaitCursor

'Имитировать выполнение работы путем создания паузы продолжительностью

'2,8 секунды

System.Threading.Thread.Sleep(2800)

'Необязательное дополнительное обновление состояния

Label1.Text = "Ждите! Работа близка к завершению!"

Label1.Update

'Имитировать выполнение работы путем создания паузы продолжительностью

'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

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

'Остановить таймер

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

Поделиться с друзьями: