29

これは、Microsoft が並列 for に対して提示した例です。このコードの最大スレッド数を構成する方法を知りたいです。

     // 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

ParallelOptionsで値を指定する必要がありますMaxDegreeOfParallelism:

例えば:

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.MaxDegreesofParellelismForを見て、それをメソッドに渡すことをお勧めします

于 2013-04-10T16:28:54.397 に答える