29

这是微软为并行提供的示例,我想知道如何为此代码配置最大线程数。

     // A basic matrix multiplication.
     // Parallelize the outer loop to partition the source array by rows.
     System.Threading.Tasks.Parallel.For(0, matARows, i =>
     {
        for (int j = 0; j < matBCols; j++)
        {
           // Use a temporary to improve parallel performance.
           double temp = 0;
           for (int k = 0; k < matACols; k++)
           {
              temp += matA[i, k] * matB[k, j];
           }
           result[i, j] = temp;
        }
     }); // Parallel.For
4

3 回答 3

50

您需要使用 a 指定一个ParallelOptionsMaxDegreeOfParallelism

例如:

Parallel.For(0, 10, new ParallelOptions { MaxDegreeOfParallelism = 4 }, count =>
{
    Console.WriteLine(count);
});
于 2013-04-10T16:29:03.837 回答
4

使用MaxDegreeOfParalelism属性运行循环

Parallel.For(0, 1000, new ParallelOptions { MaxDegreeOfParallelism = 2 }, ...);
于 2013-04-10T16:28:13.323 回答
3

我建议您看一下ParallelOption.MaxDegreesofParellelism并将其传递给For方法

于 2013-04-10T16:28:54.397 回答