' + Отображение дополнительного текста, сообщающего пользователю
' о том, что происходит
' + Визуальная индикация окончания выполнения работы
' (исчезновение курсора ожидания)
' - Пользовательский интерфейс не способен к отклику в процессе работы
' + По завершении выполнения задачи конечный пользователь узнает об этом,
' а пользовательский интерфейс восстанавливает способность к отклику
' + Текстовые сообщения информируют пользователя о том, что происходит
'-------------------------------------------------------------------------
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
'==================================================================
'Примечание. В этом примере используется класс 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
'========================================================================
'ТЕСТОВАЯ ФУНКЦИЯ: