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

Пример использования фонового потока для выполнения отдельной задачи

Пример использования фонового потока для выполнения отдельной задачи

Показанный в листинге 9.1 код представляет класс, который позволяет управлять выполнением задачи в фоновом потоке. Для отслеживания состояний подготовки приложения к выполнению, запуска нового потока, выполнения кода потоком и выхода из потока выполнения по завершении работы применяется конечный автомат.

Кроме того, в рассматриваемом примере основному потоку предоставляется возможность запрашивать прекращение выполнения фоновой задачи. Для уведомления потока, выполняющего фоновую задачу, о поступлении запроса на прекращение выполнения, используется вызов метода m_threadExecute.setProcessingState(ThreadExecuteTask.ProcessingState.requestAbort) из другого потока. За периодическую проверку этого состояния и осуществление возможного прекращения выполнения операции отвечает код, выполняемый фоновым потоком. Конечный автомат для класса ThreadExecuteTask представлен на рис. 9.1.


Рис. 9.1. Конечный автомат для отдельной задачи, выполняемой фоновым потоком

Оглавление книги


Генерация: 1.903. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз