Parallel類(lèi)是對(duì)線(xiàn)程的一個(gè)抽象。該類(lèi)位于System.Threading.Tasks名稱(chēng)空間中,提供了數(shù)據(jù)和任務(wù)并行性。
Paraller類(lèi)定義了數(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()方法類(lèi)似C#語(yǔ)法的for循環(huán)語(yǔ)句,多次執(zhí)行一個(gè)任務(wù)。但該方法并行運(yùn)行迭代,迭代的順序沒(méi)有定義。
Parallel.For()方法中,前兩個(gè)參數(shù)定義了循環(huán)的開(kāi)頭和結(jié)束,第三個(gè)參數(shù)是一個(gè)Action委托。Parallel.For方法返回類(lèi)型是ParallelLoopResult結(jié)構(gòu),它提供了循環(huán)是否結(jié)束的信息。
Parallel.For有多個(gè)重載版本和多個(gè)泛型重載版本。
示例:
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); });