如何在Parallel.For中配置最大线程数

Ale*_* S. 23 c# parallel-processing for-loop

这是microsoft为parallel提供的示例,我想知道如何为此代码配置最大线程数.

     // 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
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 42

您需要使用以下内容指定ParallelOptionsMaxDegreeOfParallelism:

例如:

Parallel.For(0, 10, new ParallelOptions { MaxDegreeOfParallelism = 4 }, count =>
{
    Console.WriteLine(count);
});
Run Code Online (Sandbox Code Playgroud)

  • 对于每次使用的并行: Parallel.ForEach(lines,new ParallelOptions { MaxDegreeOfParallelism = 4 }, line =&gt; { Console.WriteLine(line); }); (2认同)