' + Отображение дополнительного текста, сообщающего пользователю

' о том, что происходит

' + Визуальная индикация окончания выполнения работы

' (исчезновение курсора ожидания)

' - Пользовательский интерфейс не способен к отклику в процессе работы

' + По завершении выполнения задачи конечный пользователь узнает об этом,

' а пользовательский интерфейс восстанавливает способность к отклику

' + Текстовые сообщения информируют пользователя о том, что происходит

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

Private Sub Button3_Click(ByVal senderAs System.Object, _

 ByVal e As System.EventArgs) Handles Button3.Click

 'Предоставить пользователю текст, информирующий его обо всем происходящем

 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

'========================================================================

'ТЕСТОВАЯ ФУНКЦИЯ:

Перейти на страницу:

Похожие книги