Как я могу справиться с прекращением рабочего процесса? - PullRequest
1 голос
/ 13 января 2010

Я реализовал механизм организации очередей, включая пользовательский интерфейс для запуска определенных типов рабочих процессов (WF 3.5), где я хотел включить возможность для пользователя отменить / прекратить рабочий процесс. Прекращение не обязательно должно быть синхронным, достаточно показать, что происходит отмена, и позволить ему позже обновить состояние.

До сих пор мне удавалось просто использовать функцию экземпляра рабочего процесса Terminate () , чтобы уничтожить рабочий процесс, который работает идеально и даже синхронно, но кажется, что он не дает рабочему процессу никакой возможности реагировать до прекращения. Я попробовал:

  1. Создать обработчик отмены на уровне рабочего процесса, это не было выполнено.
  2. Создание обработчика ошибок на уровне рабочего процесса с типом ошибки WorkflowTeridityException . Это тоже не было выполнено.

В основном кажется, что прекращение означает действительно немедленное завершение рабочего процесса, независимо от того, что он в данный момент делает. Есть ли способ:

  • Обрабатывать завершение (с помощью функции Terminate ()) любым другим способом? (возможно, некоторые настройки, которые я пропустил)
  • Внешне отменить рабочий процесс таким образом, чтобы его обработчик отмены или обработчик ошибок выполнялся, давая ему возможность привести в порядок и т. Д.?

1 Ответ

2 голосов
/ 13 января 2010

Как ни странно, сегодня я думал об этом сегодня.

Возможно, вы сочтете эту ссылку полезной: Остановка сборки> Отмена рабочего процесса , поскольку в нем говорится о возможном подходе.

...