它是并行编程的正负吗?

时间:2013-06-05 17:10:37

标签: c# .net parallel-processing

这是一个问题:

C#,Parallel.For或Parallel.ForEach ...

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

它会减慢程序吗?生产力怎么样?

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

example =>

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...
 });

});

谢谢!

1 个答案:

答案 0 :(得分:1)

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

默认情况下,Parallel.ForParallel.ForEach尝试根据可用内核的数量自动对工作进行分区,让两个分区程序争夺可用内核很可能会降低其工作速度。