Создание Windows-приложений на основе Visual C#


              

Асинхронный запуск метода с различными вариантами завершения вызова


Рассмотрим теперь асинхронный запуск метода и его завершение несколькими способами в очень простом Windows-приложении. Создайте новое приложение и назовите его AsyncMethods. Добавляем на форму три кнопки и три надписи. Устанавливаем следующие свойства элементов управления:

button1, свойствоЗначение
NamebtnEnd
Location8; 16
TextEnd
button2, свойствоЗначение
NamebtnIsComplete
Location8; 56
TextIsComplete
button3, свойствоЗначение
NamebtnCallback
Location8; 96
TextCallback
label1, свойствоЗначение
NamelblEnd
Location104; 16
Size168; 23
Text
label2, свойствоЗначение
NamelblIsComplete
Location104; 56
Size168; 23
Text
label3, свойствоЗначение
NamelblCallback
Location104; 96
Size168; 23
Text

Переходим в код формы. Создаем делегат AsynchronousMethodDelegate:

private delegate string AsynchronousMethodDelegate(ActivateType source);

Создаем метод, предназначенный для асинхронного запуска:

private string AsynchronousMethod(ActivateType source) { string result = String.Empty; switch(source) { case ActivateType.Callback: result = "Callback"; break; case ActivateType.End: result = "End"; break; case ActivateType.IsComplete: result = "Is Complete"; break; } return result; }

В зависимости от выбора значения перечисления ActivateType метод будет возвращать одну из трех переменных типа string — Callback, End или Is Complete. Выбранное значение перечисления будет типом завершения вызова:

private enum ActivateType { End, IsComplete, Callback }

В обработчике кнопки btnEnd выводим результат работы асинхронного метода на надпись lblEnd:

Листинг 7.7.

(html, txt)

В обработчике кнопки btnIsComplete применяем способ завершения работы Pooling и также выводим результат на надпись lblIsComplete:

Листинг 7.8.

(html, txt)

В обработчике кнопки применяем способ завершения работы Callback:

Листинг 7.9.

(html, txt)

Добавляем метод для завершения вызова и выводим результат на надпись lblCallback:

Листинг 7.10.

(html, txt)

Запускаем приложение. Его работа предельно проста — при нажатии на кнопки запускается метод AsynchronousMethod, который завершается одним из асинхронных способов (рис. 7.4).

Приложение AsyncMethods

Рис. 7.4.  Приложение AsyncMethods

На диске, прилагаемом к книге, вы найдете приложение AsyncMethods (Code\Glava7\AsyncMethods).




Содержание  Назад  Вперед