我们说我有一个工作流程,我想多次并行执行:
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 } }));
答案 0 :(得分:2)
是的,以这种方式执行工作流定义是“合法的”。就调用而言,工作流定义本身是线程安全的。事实上,it is highly recommended you always cache the workflow definition for reuse in your apps。这是因为定义只是执行的模板,执行本身每次都会导致一个全新的状态。