簡體   English   中英

使用Parallel.ForEach()進行長時間運行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM