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

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

참고 항목

이 예제는 사용법을 보여 주기 위한 것이며, 동일한 순차 LINQ to Objects 쿼리보다 빠르게 실행되지 않을 수도 있습니다. 속도 향상에 대한 자세한 내용은 PLINQ의 속도 향상 이해를 참조하세요.

예시

다음 예제에서는 쿼리의 이전 절에서 설정된 순서를 유지하기 위해 AsSequential이 필요한 하나의 시나리오를 보여줍니다.

// Paste into PLINQDataSample class.
static void SequentialDemo()
{
    var orders = GetOrders();
    var query = (from order in orders.AsParallel()
                 orderby order.OrderID
                 select new
                 {
                     order.OrderID,
                     OrderedOn = order.OrderDate,
                     ShippedOn = order.ShippedDate
                 })
                 .AsSequential().Take(5);
}
' Paste into PLINQDataSample class
Shared Sub SequentialDemo()

    Dim orders = GetOrders()
    Dim query = From ord In orders.AsParallel()
                Order By ord.OrderID
                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

코드 컴파일

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

참고 항목