[英]Using Parallel.ForEach() for long running process
我有一個實現如下:
Parallel.ForEach(dtJobs.AsEnumerable(),new ParallelOptions{MaxDegreeofParalellism=5},dataRow=>
{
some long running process
});
屬性MaxDegreeofParalellism = 5將僅創建5個線程?
我對嗎 ? 如果沒有,請指正我。
從ParallelOptions.MaxDegreeOfParallelism
:
MaxDegreeOfParallelism屬性影響通過此ParallelOptions實例傳遞的Parallel方法調用運行的並發操作數。 正屬性值將並發操作數限制為設置值。 如果為-1,則並發運行的操作數沒有限制。
默認情況下,For和ForEach將利用底層調度程序提供的許多線程,因此從默認值更改MaxDegreeOfParallelism僅限制將使用的並發任務數。
因此,是的,它將最大為5。它不能保證達到5,這取決於基礎調度程序提供的線程數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.