Рабочий процесс Windows, TrackingParticipant и Idle vs Unloaded

Я использую службу рабочего процесса Windows и мне нужно знать, когда экземпляр рабочего процесса находится в режиме ожидания. Используя http://code.msdn.microsoft.com/Windows-Workflow-b9d5ccb7 в качестве ресурса, я создал TrackingParticipant и получаю "уведомление" при возникновении определенных состояний, например, в состоянии ожидания, завершен, сохранен, возобновлен, выгружен, удален, так далее.

Я ожидал, что только когда экземпляр рабочего процесса завершит обработку текущих операций, состояние перейдет в состояние ожидания. Однако кажется, что он переходит в режим ожидания, даже если для выполнения экземпляра рабочего процесса требуется больше обработки. Например, я могу видеть последовательные состояния "ожидания" для одного и того же экземпляра рабочего процесса. Таким образом, состояние "Idle" не очень помогает мне определить, когда экземпляр рабочего процесса больше не обрабатывает какие-либо действия.

Однако состояние "Unloaded", похоже, дает мне то, что я хочу. Состояние "Unloaed" (насколько я могу судить) возникает только тогда, когда у экземпляра рабочего процесса нет других действий для выполнения.

Итак, мой вопрос: безопасно ли полагаться на состояние "Unloaded", чтобы определить, не обрабатывает ли экземпляр рабочего процесса какие-либо действия или есть какой-то другой метод, который я должен использовать?

Спасибо за помощь, Эрик

0 ответов

Другие вопросы по тегам