C#다중 스레드 Parallel에서 for continue,break와 유사한 방법

3720 단어 continue
오랫동안 글을 쓰지 않았는데, 드디어 지식을 찾아서 기록해 두었습니다...
Parallel Loop State 대상을 이용하여 Parallel을 제어합니다.For 함수 실행, ParallelLoopState 객체는 런타임 백그라운드에서 작성됩니다.
Parallel.For(1, 100, (i, ParallelLoopState) =>{...});

이 대상은 두 가지 함수가 있는데, Stop과 Break인데, 각각 Parallel을 제어할 수 있다.For의 실행
Parallel을 나타내는 Stop을 호출합니다.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             });

좋은 웹페이지 즐겨찾기