В чем разница между использованием WorkflowInvoker и WorkflowApplication? - PullRequest
5 голосов
/ 29 ноября 2010

и я замечаю, что когда я использую Invoker и вызываю invoker.Invoke (), GUI не будет обновляться во время работы. Какая еще разница?

1 Ответ

8 голосов
/ 29 ноября 2010

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

WorklfowApplication является асинхронным и выполняет рабочие процессы как асинхронную задачу, поэтому запуск только планирует выполнение и возвращает.От того, какой поток он выполняет, зависит от используемого SynchronizationContext, по умолчанию используется ThreadPool.Обновления состояния, такие как завершение рабочего процесса, выполняются с помощью установленных вами обратных вызовов.Он также поддерживает хранилище экземпляров Workflow.

...