【发布时间】:2012-09-07 19:01:17
【问题描述】:
我相信有人知道这一点,我将非常感谢您的回答。我对委托和异步等知之甚少 - 所以请给我一个如何实现的一般示例。
我有一个工作流程,其中 我可以使用 Parallel.Foreach 同时为许多不同的文件执行一个方法(甜,研磨那个处理器) - 但是在该方法结束后,我需要运行另一种方法(它会生成关于前一个进程的报告), 并且第二种方法不能并行运行。
我不想在生成报告之前等待 Parallel.ForEach 中的所有文件完成(这不是必需的)。但是,如果我在第一种方法结束时开始报告生成方法,那么我就会遇到问题。有什么排队之类的吗?一定有一些漂亮的方法,对吧?
谢谢
【问题讨论】:
-
那么您希望什么时候开始生成报告?您是否希望将 foreach 的结果排队,直到达到特定阈值然后开始报告?
-
在对文件执行第一种方法之后,我想立即开始执行第二种方法 - 但是第二种方法一次只能处理一个“文件”。所以许多进程正在运行,其中一个完成,开始报告,另一个许多进程完成,等待第一个报告然后开始第二个报告生成。
-
是的,我实际上正在执行一个启动进程(另一个应用程序)的方法/函数,但这是一大堆令人困惑的语义。
-
有没有办法编辑标题/问题?
标签: c# task-parallel-library .net-4.5 parallel.foreach