這篇文章將為大家詳細(xì)講解有關(guān)Parallel類如何c# 中使用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
Parallel類是對(duì)線程的抽象,提供數(shù)據(jù)與任務(wù)的并行性。類定義了靜態(tài)方法For和ForEach,使用多個(gè)任務(wù)來(lái)完成多個(gè)作業(yè)。Parallel.For和Parallel.ForEach方法在每次迭代的時(shí)候調(diào)用相同的代碼,而Parallel.Invoke()方法允許同時(shí)調(diào)用不同的方法。Parallel.ForEach()方法用于數(shù)據(jù)的并行性,Parallel.Invoke()方法用于任務(wù)的并行性。
1、For()方法
For()方法用于多次執(zhí)行一個(gè)任務(wù),可以并行運(yùn)行迭代,但迭代的順序并沒(méi)指定。For()方法前兩個(gè)參數(shù)為定義循環(huán)的開(kāi)始和結(jié)束,第三個(gè)參數(shù)為Action<int>委托。方法的返回值是ParallelLoopResult結(jié)構(gòu),它提供了是否結(jié)束的信息。如以下循環(huán)方法,不能保證輸出順序:
static void ParallelFor() { ParallelLoopResult result = Parallel.For(0, 10, async i => { Console.WriteLine("{0}, task: {1}, thread: {2}", i, Task.CurrentId, Thread.CurrentThread.ManagedThreadId); await Task.Delay(10);//異步方法,用于釋放線程供其他任務(wù)使用。完成后,可能看不到方法的輸出,因?yàn)橹?前臺(tái)線)程結(jié)束,所有的后臺(tái)線程也將結(jié)束 Console.WriteLine("{0}, task: {1}, thread: {2}", i, Task.CurrentId, Thread.CurrentThread.ManagedThreadId); }); Console.WriteLine("Is completed: {0}", result.IsCompleted); }
文章標(biāo)題:Parallel類如何c#中使用-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://jinyejixie.com/article32/eicsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、網(wǎng)頁(yè)設(shè)計(jì)公司、動(dòng)態(tài)網(wǎng)站、微信小程序、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容