2013-04-10 97 views
17

这是microsoft为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

这是*真的*提供的例子吗?因为目前它确实无效。你能告诉我们提交的内容吗? – 2013-04-10 16:27:13

+0

是的。那么,在这里我只提出了相关的片段。整个例子在这里:http://msdn.microsoft.com/en-us/library/dd460713.aspx – 2013-04-10 16:34:56

+0

你提出了一个片段,它在语法上是不正确的,在中间粘贴“System.Threading.Tasks.TaskCreationOptions”没有理由的参数列表。 – 2013-04-10 16:48:09

回答

26

你需要指定一个ParallelOptions值与MaxDegreeOfParallelism

例如:

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

使用MaxDegreeOfParalelism属性运行循环

Parallel.For(0, 1000, new ParallelOptions { MaxDegreeOfParallelism = 2 }, ...); 
相关问题