디자인 모드 --- 병렬 순환 (2 - 1)

3622 단어 디자인 모드
. NET 시스템 에서 병행 순환 은 For 순환 과 Foreach 순환 을 포함 하고 LQIN 검색 어 에서 도 유효 합 니 다.그래서 Parelle. For 방법 으로 정수 색인 범 위 를 옮 겨 다 닐 수도 있 고 Parelle. Foreach 도 가능 합 니 다.
C \ # 에서 순서 for 순환 일반
int n=......;

for(int i=0;i<n;i++)

{

 //................

}

다 핵 을 이용 하기 위해 서 는 Parellel. For 를 호출 하여 순환 체 를 lambda 표현 식 으로 변환 할 수 있 습 니 다.
int n=........;

Parellel.For(0,n,i=>{

     //...........

})
Parellel.For          (    300     )

다음은 예 입 니 다. Parellel. For 의 방법 으로 설명 하 겠 습 니 다.
Parallel.For(int fromInclusive,

     int toexclusive, 

    Action<int> body)

     앞의 두 매개 변 수 는 교체 제한 첫 번 째 매개 변 수 는 최소 색인 (최소 값) 이 고 두 번 째 는 상한 (최대 값) 입 니 다. 세 번 째 매개 변 수 는 매번 교체 할 때마다 한 번 씩 호출 하 는 작업 입 니 다. 이 조작 은 교체 색인 을 매개 변수 로 하고 모든 색인 에 대해 순환 체 를 따라 한 번 실 행 됩 니 다.세 번 째 매개 변 수 는 의뢰, 익명 방법 또는 일반 명명 방법 일 수도 있다.
2, 병렬 ForEach 순환
 C \ # 중 순서 foreach 의 쓰기 도 살 펴 보 겠 습 니 다.
    IEnumerable<MyObject> myEnumerable=...;

foreach(var obj in myEnumerable)

{

   //...........



}

다 핵 기술 을 이용 하려 면 Parallel. ForEach 방법 으로 순서 foreach 를 교체 해 야 합 니 다.
IEnumerable<myobj> myeum=..........;

Parallel.ForEach(myeum,obj=>{

 //........

});

이 순환 은 순 서 를 보장 하지 않 는 다.
3. 병렬 LINQ
linq 에 Plinq 가 포함 되 어 있 습 니 다. (PLINQ 는 병렬 프로 그래 밍 모드 입 니 다.)
IEnumerable<myobj> soure=..............;

//LINQ

var query1=from i in soure select Normalize(i);

//PLINQ

var query2=form i in soure.AsParallel();

select Nomalize(i);

위 에 매 거 진 대상 2 개 를 만 듭 니 다.
입력 값 을 되 돌려 주지 않 고 모든 입력 값 을 옮 겨 다 닐 때 도 PLINQ 의 ForAll 을 사용 할 수 있 습 니 다.
IEnumerable<myobj> myenum=........;

myrnum.AsParallel().ForAll(obj=>DoWork(obj));

이곳 의 ForAll 확장 방법 은 Plinq 의 parallel. Foreach 방법 과 같 습 니 다.

좋은 웹페이지 즐겨찾기