我想在调用线程上同步使用 WorkflowApplication 执行工作流。
链接http://msmvps.com/blogs/theproblemsolver/archive/2011/01/07/doing-synchronous-workflow-execution-using-the-workflowapplication.aspx提供了一个示例,但 Idle 和 Abort 事件仍在单独执行线程。
框架中是否有已经提供完全同步执行的东西,或者我必须编写它?
我想在调用线程上同步使用 WorkflowApplication 执行工作流。
链接http://msmvps.com/blogs/theproblemsolver/archive/2011/01/07/doing-synchronous-workflow-execution-using-the-workflowapplication.aspx提供了一个示例,但 Idle 和 Abort 事件仍在单独执行线程。
框架中是否有已经提供完全同步执行的东西,或者我必须编写它?
无论您选择何种主机,工作流运行时始终是异步的。除了使用不同的 SynchronizationContext 或阻塞线程直到工作流完成之外,您无能为力。Ron Jacobs 有一个类似的方法,使用 ManualResetEvent 和他的Workflow Episodes。
两年后...最好的方法是:
class SynchronousSynchronizationContext : SynchronizationContext
{
public override void Post(SendOrPostCallback d, object state)
{
this.Send(d, state);
}
}