4

スレッドの呼び出し時にWorkflowApplicationを使用してワークフローを同期的に実行したいと思います。

リンクhttp://msmvps.com/blogs/theproblemsolver/archive/2011/01/07/doing-synchronous-workflow-execution-using-the-workflowapplication.aspxに1つの例がありますが、アイドルイベントと中止イベントは引き続き別々に実行されます。スレッド。

すでに完全同期実行を提供しているフレームワークに何かがありますか、それとも私はそれを書かなければなりませんか?

4

2 に答える 2

5

選択したホストに関係なく、ワークフローランタイムは常に非同期です。別のSynchronizationContextを使用するか、ワークフローが完了するまでスレッドをブロックする以外に、これについてできることは何もありません。Ron Jacobsは、ワークフローエピソードでManualResetEventを使用した同様のアプローチを採用しています。

于 2012-08-10T10:01:57.893 に答える
0

2年後...最良の方法は:

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