下面的代码片段之间有什么区别吗?如果是,是什么?
myList.AsParallel().ForAll(i => {/*DO SOMETHING*/});
和
Parallel.ForEach(mylist, i => {/*DO SOMETHING*/});
主线程会等待所有子线程完成吗?在 MVC 应用程序中,如果我在我的 Controller 操作中进行并行处理,那么在主线程完成后子线程会发生什么。它们会被中止还是会在主线程完成后完成?
最佳答案
Parallel.ForEach()
正是为这种代码设计的。
另一方面,ForAll()
旨在用于(可能很复杂的)PLINQ 查询的末尾。
因此,我认为 Parallel.ForEach()
是更好的选择。
在这两种情况下,当前线程将用于执行计算(连同线程池中的一些线程)并且该方法将仅在所有处理完成后返回。
关于c# - AsParallel.ForAll 与 Parallel.ForEach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14206834/