如何并发地执行集合项



我正在开发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]处于空闲状态,则只有它将处理集合中的下一个项目。这里

我希望序列块对每个项目并发执行?我该怎么做呢?任何建议

你链接的问题不就是你的问题吗?工作流是单线程的,你必须处理它。如果你的工作可以异步完成,你应该使用AsyncCodeActivity。如果没有,那么您所链接的问题的代码可以很容易地创建非阻塞活动。

最新更新