Шрифт:
'Предоставить пользователю текст, информирующий его обо всем происходящем
Label1.Text = "Ждите! Работа выполняется!"
'Заставить ПИ обновить текст
'(иначе он сделает это только тогда, когда будет перерисовывать сообщение,
'а это может произойти и после выхода из данной функции)
Label1.Update
'Отобразить курсор ожидания
System.Windows.Forms.Cursor.Current = _
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
'=======================================================
'Осуществляет многократные вызовы простой функции и
'измеряет общее время выполнения
'Вызываемая функция НЕ приводит к возбуждению исключений