如何:Parallel.Foreach 执行许多进程,每个进程运行一个新进程(但一次一个)? [关闭]

2024-03-16

我确信有人知道这一点,我将非常感谢您的回答。我对委托和异步等不太了解 - 所以请给我一个如何实现的一般示例。

我有一个工作流程 我可以使用 Parallel.Foreach 同时执行许多不同文件的方法(太好了,磨掉那个处理器) - 但是,在该方法结束后,我需要运行另一个方法(它生成有关前一过程的报告), 并且第二种方法不能并行运行。

我不想等待 Parallel.ForEach 中的所有文件完成后再生成报告(这不是必需的)。但是,如果我在第一个方法结束时启动报告生成方法,那么我就会遇到问题。有某种队列之类的吗?一定有一些漂亮的方法可以做到这一点,对吧?

Thanks


我认为 Jim G 的意思是:

var lockObj = new object();

Parallel.Foreach(files, file => 
{
    // Processing file
    lock(lockObj)
    {
        // Generate report.
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何:Parallel.Foreach 执行许多进程,每个进程运行一个新进程(但一次一个)? [关闭] 的相关文章

随机推荐