1

我正在为支持 .NET 3.5 的 Unity GameEngine 构建一个自定义插件,为了能够使用 TPL,我安装了 Reactive Extensions v1.0.2856.0(我认为是最后一个包含 TPL 的插件)。所以,在一个脚本中,我有一个大约 65000 次交互的循环。例如,我使用 Parallel.Foreach 循环没有问题,但问题是使用默认分区器,由于迭代次数少,工作分配不均,实际上循环变得有点慢。

所以我的问题是:有没有一种方法可以创建一个分区器,它可以为我的 2 个 CPU 内核提供大约一半的迭代工作。

4

1 回答 1

0

使用ParallelOptions.MaxDegreeOfParallelism

var options = new ParallelOptions {MaxDegreeOfParallelism = 2};
Parallel.ForEach(list, options,
    item =>
    {
        // work})
    });
于 2014-09-11T15:39:01.937 回答