【问题标题】:Execute single workflow instance in parallel并行执行单个工作流实例
【发布时间】:2012-01-13 19:37:27
【问题描述】:

假设我有一个工作流,我想并行执行多次:

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 } }));

【问题讨论】:

  • 你试过了吗?
  • 如果文档没有明确说明它是线程安全的,我会谨慎行事。
  • 是的,我试过了,但我的测试工作流程非常简单。虽然它在我的情况下工作正常,但我不确定它是否安全。

标签: c# parallel-processing workflow-foundation-4 parallel-extensions


【解决方案1】:

是的,以这种方式执行工作流定义是“合法的”。就调用而言,工作流定义本身是线程安全的。事实上,it is highly recommended you always cache the workflow definition for reuse in your apps。这是因为定义只是执行的一个模板,执行本身每次都会导致一个全新的状态。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多