我正在为支持.NET 3.5的Unity GameEngine构建自定义插件并且能够使用TPL我安装了Reactive Extensions v1.0.2856.0(我认为是包含TPL的最后一个)。所以,在一个脚本中,我有一个大约65000个交互的循环。例如,我使用Parallel.Foreach循环没有问题,但问题是,使用默认分区程序时,由于迭代次数较少而实际上循环速度变慢,因此工作不均匀分布。
所以我的问题是: 有没有办法创建一个分区程序,它可以为我的2个CPU内核提供大约一半的迭代次数。
答案 0 :(得分:0)
使用ParallelOptions.MaxDegreeOfParallelism:
var options = new ParallelOptions {MaxDegreeOfParallelism = 2};
Parallel.ForEach(list, options,
item =>
{
// work})
});