카테고리 보관물: C#

C#

Parallel.ForEach에 ‘continue’과 같은 것이 있습니까? 코드를 포팅하고 있으며

일부 코드를 포팅하고 있으며 코드에 Parallel.ForEach오류가 continue있습니다. 루프 에서 Parallel.ForEach와 기능적으로 동등한 기능을 사용할 수 있습니까?continueforeach

Parallel.ForEach(items, parallelOptions, item =>
{
    if (!isTrue)
        continue;
});


답변

return;

(본문은 각 항목에 대해 호출 된 기능 일뿐입니다)


답변

루프를 Parallel.Foreach 논리에 대한 호환 가능한 정의로 변환하면 명령문 본문을 람다로 만들었습니다. 이것은 병렬 함수에 의해 호출되는 동작입니다.

그래서, 교체 continuereturn, 그리고 함께 휴식 Stop()또는 Break()문.


답변

계속하려면 나머지 블록을 건너 뛰고 다음 항목으로 이동하십시오. 따라서 블록의 나머지 부분에 반대 조건을 적용하여 계속을 구현할 수 있습니다.

예를 들어 질문의 코드는 다음과 같이 다시 작성됩니다.

Parallel.ForEach(items, parallelOptions, item =>
{
    //Skip an item by applying the opposite condition used for continue on all items until the end of the foreach

    if (isTrue)
    {
      //Do what you want to do for all items
    }

});

답변