Parallel類是對線程的一個抽象。該類位于System.Threading.Tasks名稱空間中,提供了數(shù)據(jù)和任務(wù)并行性。
Paraller類定義了數(shù)據(jù)并行地For和ForEach的靜態(tài)方法,以及任務(wù)并行的Invoke的靜態(tài)方法。Parallel.For()和Parallel.ForEach()方法在每次迭代中調(diào)用相同的代碼,Paraller.Invoke()允許調(diào)用不同的方法。
1.Parallel.For
Parallel.For()方法類似C#語法的for循環(huán)語句,多次執(zhí)行一個任務(wù)。但該方法并行運行迭代,迭代的順序沒有定義。
Parallel.For()方法中,前兩個參數(shù)定義了循環(huán)的開頭和結(jié)束,第三個參數(shù)是一個Action委托。Parallel.For方法返回類型是ParallelLoopResult結(jié)構(gòu),它提供了循環(huán)是否結(jié)束的信息。
Parallel.For有多個重載版本和多個泛型重載版本。
示例:
static void ForTest() { ParallelLoopResult plr = Parallel.For(0,10,i => { Console.WriteLine("{0},task:{1},thread:{2}",i,Task.CurrentId,Thread.CurrentThread.ManagedThreadId); Thread.Sleep(5000); });