我的实施方法如下:
Parallel.ForEach(dtJobs.AsEnumerable(),new ParallelOptions{MaxDegreeofParalellism=5},dataRow=>
{
some long running process
});
属性 MaxDegreeofParalellism = 5 只会创建5个帖子?
我是对的吗?如果没有,请纠正我..
答案 0 :(得分:2)
来自ParallelOptions.MaxDegreeOfParallelism
:
MaxDegreeOfParallelism属性会影响通过此ParallelOptions实例传递的并行方法调用所运行的并发操作数。正属性值将并发操作的数量限制为设置值。如果为-1,则对并发运行的操作数没有限制。
默认情况下,For和ForEach将使用底层调度程序提供的许多线程,因此从默认值更改MaxDegreeOfParallelism只会限制将使用多少并发任务。
所以是的,它将 max out 设置为5.它不能保证达到5,这取决于底层调度程序提供的线程数。