国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

C#多線程之Parallel中 類似于for的continue,break的方法

2019-11-17 02:58:22
字體:
供稿:網(wǎng)友

C#多線程之Parallel中 類似于for的continue,break的方法

好久沒寫東西了,終于找到點知識記錄下。。。

利用ParallelLoopState對象來控制Parallel.For函數(shù)的執(zhí)行,ParallelLoopState對象是由運行時在后臺創(chuàng)建的:

Parallel.For(1, 100, (i, ParallelLoopState) =>{...});

這個對象有兩個函數(shù),Stop和Break,可以分別用來控制Parallel.For的執(zhí)行。

調(diào)用Stop,表示Parallel.For的執(zhí)行立刻停止,無論其他執(zhí)行單元是否達到停止的條件。而如果我們使用Break,則表示滿足條件的當前執(zhí)行單元立刻停止,而對于其他執(zhí)行單元,其中滿足停止條件也會通過Break停止,其他未滿足停止條件的則會繼續(xù)執(zhí)行下去,從而全部執(zhí)行完畢,自然停止。當所有執(zhí)行單元停止后,Parallel.For函數(shù)才停止執(zhí)行并退出。

break類似于for的continue,而stop就類似于for的break。

            Parallel.For(1, 100, (i, ParallelLoopState) =>            {                  // 當某一個循環(huán)單元的數(shù)大于30,                // 則跳出當前執(zhí)行單元,等待其他執(zhí)行單元結(jié)束                // 所有執(zhí)行單元結(jié)束后退出Parallel.For的執(zhí)行                if (i > 30)                {                    // 跳出當前執(zhí)行單元                    ParallelLoopState.Break();                    return;//不加return,可能會發(fā)生該進程資源未釋放。                }            });
            Parallel.For(1, 100, (i, ParallelLoopState) =>            {                // 當某一個循環(huán)單元的數(shù)大于30,                // 則停止Parallel.For的執(zhí)行                if ( i > 30)                {                    // 停止并退出Parallel.For                    ParallelLoopState.Stop();                    return;                }            });

Parallel.ForEach中ParallelLoopState對象的函數(shù)也采用相同的方式調(diào)用:

1             Parallel.ForEach(elements, (element, ParallelLoopState) =>2             {3                 if (element == "")4                 {5                     ParallelLoopState.Break();6                     return;7                 }8             });


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 南康市| 徐闻县| 宝山区| 西充县| 元阳县| 山丹县| 马尔康县| 息烽县| 都匀市| 内江市| 两当县| 东源县| 武夷山市| 乐至县| 灯塔市| 临城县| 新宁县| 永泰县| 壤塘县| 青神县| 邳州市| 衢州市| 界首市| 洛隆县| 桂平市| 南宁市| 斗六市| 宝坻区| 托克托县| 武义县| 台东县| 晋中市| 郴州市| 朔州市| 资阳市| 喀喇| 浠水县| 剑河县| 亳州市| 苏尼特右旗| 永济市|