如何同时执行收集项

时间:2016-08-09 21:17:05

标签: workflow workflow-foundation-4 workflow-foundation workflow-activity

我正在开发Windows工作流应用程序。我有一个项目集合,我需要同时处理集合中的每个项目。以下是工作流程中活动的伪代码

[Receive Message]

[Send Message]

[GetItemsFromDB]

[For Each Item]
{
  [Sequence] // for each Item i want to process this sequence concurrently
  {
       [Process Item]

       [Call Some API]

       [Receive Message]    
   }
}

WWF具有ParallelForEach<T>活动,但此活动不会同时处理集合中的每个项目。仅当主体内的任何Activity进入空闲状态时,它才会处理集合中的下一个项目。所以在上面的例子中,如果我使用ParallelForEach<T>那么 如果[Call Some API]空闲,那么只有它会处理集合中的下一个项目。 More Here

我希望每个项目的序列块同时执行? 我怎么做?任何建议

1 个答案:

答案 0 :(得分:1)

您链接的问题没有回答您的问题吗?工作流是单线程的,你必须处理它。如果您的工作可以异步完成,则应使用AsyncCodeActivity。如果没有,您链接的问题具有可以轻松创建非阻止活动的代码。