[PLINQ]平行處理原則

PLINQ 平行處理原則

PLINQ在執行的時候,會自行決定此次計算需要幾個平行處理。 假設是四核心的CPU,則PLINQ會決定這次計算四個核心都會用到,還是只有兩個核心。
所以當你有很多非同步任務要執行,又怕PLINQ搶資源,就可以設定平行處理原則,限制PLINQ最多只能用到幾個核心運算。
其實平行處理原則,就只是一個設定而已,使用起來非常容易。
string[] presidents ={ "Adams","Arthur","Buchanan","Bush",
                        "Carter","Cleveland","Clinton","Coolidge","Eisenhower",
                        "Hayes","Hoover","McKinley","Roosevelt",
                        "Taft","Taylor","Wilson"};

var data = presidents.AsParallel()
    .WithDegreeOfParallelism(2)
    .Where(x => x.Contains("o"));

foreach (var item in data)
{
    Console.WriteLine("Parallel result: {0}", item);
}
如程式碼範例,只需要在AsParallel後面加上WithDegreeOfParallelism(2),就可以指定此次PLINQ運算,會執行幾個平行處理。 當程式需要分配CPU使用資源時,這是個很好用的功能。

 

 

一天一分享,身體好健康。

該追究的不是過去的原因,而是現在的目的。