다음을 통해 공유


방법: 병렬 및 순차적 LINQ 쿼리 결합

업데이트: 2010년 5월

이 예제에서는 AsSequential<TSource> 메서드를 사용하여 PLINQ에서 쿼리의 모든 후속 연산자가 순차적으로 처리되도록 지정하는 방법을 보여 줍니다. 순차적 처리는 대개 병렬 처리보다 느리지만 올바른 결과를 생성하기 위해 순차적 처리가 필요한 경우도 있습니다.

주의 정보주의

이 예제는 사용법을 보여 주기 위한 것이며, 이에 상응하는 순차 LINQ to Objects 쿼리보다 실행 속도가 느릴 수 있습니다.속도 향상에 대한 자세한 내용은 PLINQ의 속도 향상 이해를 참조하십시오.

예제

다음 예제에서는 AsSequential<TSource>이 필요한 경우, 즉 쿼리의 이전 절에서 설정된 순서를 유지해야 하는 경우를 보여 줍니다.

' Paste into PLINQDataSample class
Shared Sub SequentialDemo()

    Dim orders = GetOrders()
    Dim query = From ord In orders.AsParallel()
                 Order By ord.CustomerID
                 Select New With
                 {
                     ord.OrderID,
                     ord.OrderDate,
                     ord.ShippedDate
                 }

    Dim query2 = query.AsSequential().Take(5)

    For Each item In query2
        Console.WriteLine("{0}, {1}, {2}", item.OrderDate, item.OrderID, item.ShippedDate)
    Next
End Sub
// Paste into PLINQDataSample class.
static void SequentialDemo()
{
    var orders = GetOrders();
    var query = (from ord in orders.AsParallel()
                 orderby ord.CustomerID
                 select new
                 {
                     Details = ord.OrderID,
                     Date = ord.OrderDate,
                     Shipped = ord.ShippedDate
                 }).
                        AsSequential().Take(5);
}

코드 컴파일

이 코드를 컴파일하고 실행하려면 이를 PLINQ 데이터 샘플 프로젝트에 붙여넣고 Main에서 메서드를 호출하는 줄을 추가한 다음 F5 키를 누릅니다.

참고 항목

개념

PLINQ(병렬 LINQ)

변경 기록

날짜

변경 내용

이유

2010년 5월

사용법과 속도 향상에 대한 설명을 추가했습니다.

고객 의견