使用TPL必須先引用Namespace:
using System.Threading.Tasks;
以下範例使用 Math.Sqrt 計算平方根:
//循序處理的寫法
for (int i = 0; i <= int.MaxValue/2; i++)
{
Math.Sqrt(i);
};
//平行處理的寫法
Parallel.For(0, int.MaxValue/2, i =>
{
Math.Sqrt(i);
});
測試環境是 Intel Core2Duo P8700 (2.53GHz雙核心)、Windows 7 32bit作業系統。從CPU Usage的圖形可以看出,循序處理的版本要花費很長的時間才能完成,過程中CPU也僅有60-70%的使用率,根本無法發揮多核心電腦應有的效能。使用平行處理的版本,整個執行過程耗費的時間減少很多,而且兩個CPU都是以100%滿載運作。
※ 本文同步發表於「dotNET探索樂園」
沒有留言:
張貼留言