방법: 병렬 및 순차적 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 키를 누릅니다.
참고 항목
개념
변경 기록
날짜 |
변경 내용 |
이유 |
---|---|---|
2010년 5월 |
사용법과 속도 향상에 대한 설명을 추가했습니다. |
고객 의견 |