2

ワークフローがあり、それを何度も並行して実行したいとします。

System.Threading.Tasks.Parallel.For(
    0, 
    100, 
    i => WorkflowInvoker.Invoke(
        new Workflow1(),  
        new Dictionary<string, object> { { "Num", i } }));

このように実行することは合法ですか?

var w = new Workflow1();
System.Threading.Tasks.Parallel.For(
    0, 
    100, 
    i => WorkflowInvoker.Invoke(
        w, 
        new Dictionary<string, object> { { "Num", i } }));
4

1 に答える 1

2

はい、そのようにワークフロー定義を実行することは「合法」です。ワークフロー定義自体は、呼び出しに関する限りスレッド セーフです。実際、アプリで再利用するためにワークフロー定義を常にキャッシュすることを強くお勧めします。これは、定義が実行の単なるテンプレートであり、実行自体が毎回まったく新しい状態になるためです。

于 2012-01-15T06:06:49.613 に答える