在使用Parallel.ForEach
时,我们可以选择定义Parallel选项并设置最大并行度,例如:
Parallel.ForEach(values, new ParallelOptions {MaxDegreeOfParallelism = number}, value = > {
// Do Work
})
但是在执行PLINQ时,例如:
Tabel.AsEnumberable()
.AsParallel()
.Where(//Logic)
我找不到设置
MaxDegreeOfParallelism
的方法。我也上网查找,但没有找到任何东西。有人找到解决方法吗?任何帮助表示赞赏。 最佳答案
您可以使用 ParallelEnumerable.WithDegreeOfParallelism
:
var result = Tabel.AsEnumberable()
.AsParallel()
.WithDegreeOfParallelism(number)
.Where(/* predicate */);
编辑:
@svick在ParallelOptions.MaxDegreeOfParallelism vs PLINQ’s WithDegreeOfParallelism上提供了出色的内容,强调了两者之间的区别:
关于c# - AsParallel()的最大并行度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25290389/