程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#多線程之Parallel中 類似於for的continue,break的方法,

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

編輯:C#入門知識

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


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

利用ParallelLoopState對象來控制Parallel.For函數的執行,ParallelLoopState對象是由運行時在後台創建的:

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

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

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

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

            Parallel.For(1, 100, (i, ParallelLoopState) =>
            {  
                // 當某一個循環單元的數大於30,
                // 則跳出當前執行單元,等待其他執行單元結束
                // 所有執行單元結束後退出Parallel.For的執行
                if (i > 30)
                {
                    // 跳出當前執行單元
                    ParallelLoopState.Break();
                    return;//不加return,可能會發生該進程資源未釋放。
                }
            });
            Parallel.For(1, 100, (i, ParallelLoopState) =>
            {
                // 當某一個循環單元的數大於30,
                // 則停止Parallel.For的執行
                if ( i > 30)
                {
                    // 停止並退出Parallel.For
                    ParallelLoopState.Stop();
                    return;
                }
            });

Parallel.ForEach中ParallelLoopState對象的函數也采用相同的方式調用:

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

 


c語言中符號<<是什

左移運算符(<<)

將一個運算對象的各二進制位全部左移若干位(左邊的二進制位丟棄,右邊補0)。

例:a = a << 2 將a的二進制位左移2位,右補0,

左移1位後a = a * 2;

若左移時捨棄的高位不包含1,則每左移一位,相當於該數乘以2。
右移運算符(>>)

將一個數的各二進制位全部右移若干位,正數左補0,負數左補1,右邊丟棄。

操作數每右移一位,相當於該數除以2。

例如:a = a >> 2 將a的二進制位右移2位,

左補0 or 補1 得看被移數是正還是負。
 

c語言中符號<<是什

左移運算符(<<)

將一個運算對象的各二進制位全部左移若干位(左邊的二進制位丟棄,右邊補0)。

例:a = a << 2 將a的二進制位左移2位,右補0,

左移1位後a = a * 2;

若左移時捨棄的高位不包含1,則每左移一位,相當於該數乘以2。
右移運算符(>>)

將一個數的各二進制位全部右移若干位,正數左補0,負數左補1,右邊丟棄。

操作數每右移一位,相當於該數除以2。

例如:a = a >> 2 將a的二進制位右移2位,

左補0 or 補1 得看被移數是正還是負。
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved