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 回答