0

这里有一些问题:

C#、Parallel.For 或 Parallel.ForEach...

在另一个循环中编写并行循环是否有意义?

它会减慢程序吗?生产力呢?

我真正感兴趣的是......如果第一个循环正在执行代码的“轻”部分而不是主要部分在第二个循环内,是否最好离开第二个循环并将第一个循环转换为简单的 foreach?

示例 =>

Parallel.ForEach(sourse,action=>{
  //to do smt very fast

Parallel.ForEach(sourse2,action2=>{

       //here is main code of program,
      // where there is lot of http requests and etc...
 });

});

谢谢!

4

1 回答 1

1

不,这样做没有任何意义。您应该努力在链上尽可能高地调用并行性,以便最有效地使用线程。

由于默认情况Parallel.ForParallel.ForEach尝试根据可用内核的数量自动对工作进行分区,因此让两个分区程序争夺可用内核很可能会减慢它们的工作速度。

于 2013-06-05T17:14:28.547 回答