【发布时间】:2014-07-10 01:55:15
【问题描述】:
在 Parallel.For 中,是否可以使用 'WaitAll' 同步每个线程?
Parallel.For(0, maxIter, i =>
{
// Do stuffs
// Synchronisation : wait for all threads => ???
// Do another stuffs
});
【问题讨论】:
-
为什么不调用 Parallel.For 两次?
-
不要!严重地。您在线程池线程上运行,从不在线程池线程上做任何等待或锁定(这是获得死锁的好方法,如果您正在编写一个库并且有人从例如 ASP.NET,会有很多乐趣)——很可能,有更好的方法来做到这一点。例如,为什么不调用两次
Parallel.For- 第一次是第一部分,当它结束时,所有线程都完成了。然后是第二部分,另一个For电话。 -
我同意你的观点,但有可能吗?
标签: c# synchronization parallel.for