5

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

4

1 回答 1

8

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

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

于 2010-11-29T10:51:00.230 回答