2013-04-10 26 views
17

Đây là ví dụ microsoft trình bày cho song song, và tôi muốn biết cách cấu hình số lượng chủ đề tối đa cho mã này.Cách cấu hình số lượng chủ đề tối đa trong 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

Đó có phải là * thực sự * ví dụ được trình bày không? Bởi vì nó thực sự không hợp lệ vào lúc này. Bạn có thể cho biết nơi được trình bày không? –

+0

Vâng. Vâng, ở đây tôi chỉ trình bày các mảnh có liên quan. Toàn bộ ví dụ là ở đây: http://msdn.microsoft.com/en-us/library/dd460713.aspx –

+0

Bạn đã trình bày một đoạn sai cú pháp, bằng cách dán "System.Threading.Tasks.TaskCreationOptions" ở giữa danh sách đối số không có lý do. –

Trả lời

26

Bạn cần phải xác định một giá trị ParallelOptions với số MaxDegreeOfParallelism:

Ví dụ:

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

Sử dụng MaxDegreeOfParalelism tài sản để chạy vòng lặp

Parallel.For(0, 1000, new ParallelOptions { MaxDegreeOfParallelism = 2 }, ...); 
Các vấn đề liên quan