2013-04-10 6 views
17

これは、for for parallelの例です。このコードに対して最大スレッド数を構成する方法を知りたいと思います。ループを実行するためのParallel.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 
+0

これは実際の例ですか?現時点では本当に無効です。それが提示されている場所を表示できますか? –

+0

うん。さて、私はここで関連する断片だけを提示した。全体の例はここにあります:http://msdn.microsoft.com/en-us/library/dd460713.aspx –

+0

構文の誤りであるフラグメントを、 "System.Threading.Tasks.TaskCreationOptions"を引数のリストは何もない –

答えて

26

あなたはParallelOptions値を指定する必要がForメソッドに渡すことをお勧めしたいですMaxDegreeOfParallelism

たとえば、

Parallel.For(0, 10, new ParallelOptions { MaxDegreeOfParallelism = 4 }, count => 
{ 
    Console.WriteLine(count); 
}); 
3

使用MaxDegreeOfParalelismプロパティは

Parallel.For(0, 1000, new ParallelOptions { MaxDegreeOfParallelism = 2 }, ...); 
関連する問題