4

我想在调用线程上同步使用 WorkflowApplication 执行工作流。

链接http://msmvps.com/blogs/theproblemsolver/archive/2011/01/07/doing-synchronous-workflow-execution-using-the-workflowapplication.aspx提供了一个示例,但 Idle 和 Abort 事件仍在单独执行线程。

框架中是否有已经提供完全同步执行的东西,或者我必须编写它?

4

2 回答 2

5

无论您选择何种主机,工作流运行时始终是异步的。除了使用不同的 SynchronizationContext 或阻塞线程直到工作流完成之外,您无能为力。Ron Jacobs 有一个类似的方法,使用 ManualResetEvent 和他的Workflow Episodes

于 2012-08-10T10:01:57.893 回答
0

两年后...最好的方法是:

class SynchronousSynchronizationContext : SynchronizationContext
{
    public override void Post(SendOrPostCallback d, object state)
    {
        this.Send(d, state);
    }
}
于 2013-01-14T17:07:17.420 回答