并行执行工作流程

时间:2011-12-13 22:43:51

标签: c# workflow-foundation parallel-processing

我是WF的新手,所以请帮助我理解以下内容。 假设我有一个工作流,它将一些数据作为输入,处理它并将其返回。我的任务是并行处理许多数据项。据我所知,Workflow的单个实例只能按顺序执行,而不是并行执行。显然,为每个数据项实例化一个新的工作流是非常昂贵的,所以我首先想到的是创建一个Workflow实例池并在并行循环中执行它们?是否有更好的方法来处理这种情况?

1 个答案:

答案 0 :(得分:1)

为什么要说实例化新的工作流程非常昂贵? WF本质上是一种方法,如果您在代码中声明它,则不会产生任何开销(例如,与将其加载为XML相反)。您可以使用WorrkflowInvoker类,它提供异步方法在不同的线程中执行不同的工作流(如果您在执行期间需要更多信息,例如生命周期事件,书签等,请使用WorkflowApplication)。 有关详细信息,请参阅Using WorkflowInvoker and WorkflowApplication