4
我有一个报表构建类,它使用并行处理来构建一批800个左右的报表。更改了Parallel.ForEach行为?
直到昨天,它正在罚款下面的代码:
Parallel.ForEach(reports, report => { this.Build(report); });
注:用于调试目的,我exceuting从写在一个测试项目的测试代码。
昨天,它开始失败。用资源监视器挖掘一下,发现与qtagent32.exe(测试运行器)相关的线程数量不断增加,最终导致进程失败。它看起来好像突然变得阻塞了。
我能够用一个小的变化,以我的代码解决这个问题:
Parallel.ForEach(reports, new ParallelOptions { MaxDegreeOfParallelism = 4 }, report => { this.Build(report); });
但我仍然在想有什么改变?
同一台机器?不同的机器? – 2011-02-16 08:41:54
同一台机器,相同的代码... – 2011-02-16 09:03:32