使用WorkflowInvoker和WorkflowApplication有什么区别?

时间:2010-11-29 10:26:09

标签: .net wpf workflow-foundation-4 rehosting

我注意到当我使用Invoker并直接调用invoker.Invoke()时GUI不会在运行时刷新。还有什么区别?

1 个答案:

答案 0 :(得分:8)

使用WorklfowInvoker运行工作流是同步调用。因此只要您的工作流程正在运行,它就会阻止。它适用于短期运行的工作和活动的单元测试,不支持工作流实例存储。

WorklfowApplication是异步的,并将工作流作为异步任务执行,因此Run仅计划执行并返回。它执行的线程取决于使用的SynchronizationContext,默认使用ThreadPool。状态更新,例如工作流程完成,是通过您设置的回调完成的。它还支持工作流实例存储。