平行運算 (二):PLINQ 的應用 : 文章出處 [https://dotblogs.com.tw/asdtey/2010/05/08/parallelplinq]
……..節錄備忘……
//找出 testData 中包含a 或 包含 abc的字串
resultData = testData.Where(a => a.Contains("a") || a.Contains("abc")).ToList();
只要在原本的LINQ語法加上 .AsParallel() 就可以利用平行運算
resultData = testData.AsParallel() .Where(a => a.Contains("a") || a.Contains("abc")).ToList();
其中.AsParallel() 並不表示一定會使用平行運算,其執行緒的數目會由 1、2、4、8…來增加,
另外.AsParallel()之後可以接上一個另一個方法 .WithExecutionMode(ParallelExecutionMode.ForceParallelism) ,表示要強迫使用平行運算,
此時程式會像這樣
resultData = testData.AsParallel()
.WithExecutionMode(ParallelExecutionMode.ForceParallelism)
.Where(a => a.Contains("a") || a.Contains("abc")).ToList();
沒有留言:
張貼留言