2013-04-10 17 views
17
için

Bu, paralel için Microsoft hediye örneklerinden biridir ve bu kod için maksimum sayıda iş parçacığının nasıl yapılandırılacağını bilmek isterim. döngü çalıştırmak içinBir Paralelde maksimum iş parçacığı sayısı nasıl yapılandırılır.

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

Bu * gerçekten * sunulan örnek mu? Çünkü şu anda gerçekten geçersiz. Sunulan yeri gösterebilir misiniz? –

+0

Evet. Eh, burada sadece ilgili parçayı sundum. Bütün örnek burada: http://msdn.microsoft.com/en-us/library/dd460713.aspx –

+0

"System.Threading.Tasks.TaskCreationOptions" etiketini ortada yapıştırarak sözdizimsel olarak yanlış olan bir bölüm sundunuz sebepsiz argüman listesi. –

cevap

26

Bir ParallelOptions değer belirtmek gerekir For yöntemi geçirmeden öneririm MaxDegreeOfParallelism:

Örneğin:

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

Kullanım MaxDegreeOfParalelism mülkiyet

Parallel.For(0, 1000, new ParallelOptions { MaxDegreeOfParallelism = 2 }, ...); 
İlgili konular