这是一个问题:
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...
});
});
谢谢!
答案 0 :(得分:1)
不,这样做是没有意义的。您应该努力在尽可能高的链上调用并行性,以便最有效地使用线程。
默认情况下,Parallel.For
和Parallel.ForEach
尝试根据可用内核的数量自动对工作进行分区,让两个分区程序争夺可用内核很可能会降低其工作速度。