2013-08-03 11 views
14

Tôi dường như không thể che giấu sự khác biệt giữa AsSequential và AsOrdered. Tôi đã tra cứu tài liệu về msdn cho mỗi trong số này cũng như tìm kiếm trên internet cho các ví dụ, nhưng tôi chỉ là một thợ đóng giày đơn giản và tôi đã không thể hiểu dứt khoát những gì đang xảy ra. Nếu có thể, ai đó có thể vui lòng giải thích khi bạn sử dụng AsSequential vs AsOrdered, và nếu cần thiết giải thích kết quả sẽ khác nhau như thế nào?Trong PLINQ, sự khác nhau giữa .AsSequential() và .AsOrdered() là gì?

Trả lời

17

AsOrdered chỉ thị công cụ LINQ song song để duy trì thứ tự, nhưng vẫn thực hiện truy vấn song song. Điều này có ảnh hưởng của hiệu suất cản trở vì động cơ phải cẩn thận hợp nhất các kết quả sau khi thực thi song song.

AsSequential chỉ thị công cụ LINQ song song để thực thi truy vấn tuần tự, nghĩa là không song song.

+1

Cảm ơn bạn đã trả lời. Vậy AsSequential có ghi đè AsParallel không? Loại trường hợp sử dụng nào sẽ có cho AsSequential? Là nó cho một unevaluated enumerable để ngăn chặn nó khỏi được chạy AsParallel? – user2565663

+2

Khi bạn có một truy vấn rất phức tạp, bạn có thể chỉ định sử dụng tính song song nói chung. Và trong một số phần của truy vấn, bạn có thể chọn để thực thi tuần tự (với AsSequential) – Ozkan

+2

@Ozkan bạn có thể đưa ra một ví dụ không? –