Ngày tốt,Parallel.ForEach đã lỗi thời. cũ, ra khỏi thời trang?
Thực hiện song song có thể đạt được thông qua nhiều cách. Từ nghiêm ngặt hướng dẫn sử dụng "đa luồng" để sử dụng "người giúp đỡ" khác nhau được tạo ra bởi Microsoft. Một trong những người trợ giúp đó là lớp Parallel.
Một trong các đồng nghiệp của tôi khẳng định rằng Parallel.ForEach (hoặc lớp Parallel tổng thể) là "cũ" và không nên được sử dụng. Thay vào đó, ông nói, người ta nên sử dụng các hoạt động không đồng bộ. Nói cách khác, bạn nên sử dụng Task.WhenAll()
thay vì Parallel.ForEach()
.
Khi được hỏi tại sao không sử dụng Parallel.ForEach(),
khi điều này là chính xác những gì là cần thiết - nhiều hoạt động tốn kém thực hiện song song, ông trả lời rằng Parallel.ForEach()
là cũ và rằng Microsoft khuyến cáo sử dụng async/chờ đợi bất cứ nơi nào có thể.
Tôi đã tìm kiếm trên MSDN và Stackoverflow và ở khắp mọi nơi tôi có thể nhưng tôi không thể tìm thấy bất cứ điều gì trỏ đến sự cần thiết của việc sử dụng async/await thay vì .Parallel. Mặc dù bạn thường có thể đạt được kết quả tương tự bằng cách thay đổi các công cụ này nhưng không có nghĩa là Parallel.ForEach đã lỗi thời. Hay không?
Bất kỳ ai có liên kết đến một số "thực hành tốt nhất" hoặc "đề xuất" của một cơ quan có uy tín (MSDN?) Có thể nói rằng Parallel.ForEach()
đang bị loại bỏ và cần phải tuân theo việc tạo, chạy và chờ nhiệm vụ?
Vui lòng không đăng câu trả lời liên quan đến Parallel VS Async vì đây không phải là câu hỏi.
Câu hỏi đặt ra là: Vì bạn có thể làm nhiệm vụ chạy song song sử dụng async/chờ đợi WhenAll
(WaitAll
vv), nó làm cho lớp 'Parallel' lỗi thời, cũ, hoặc không thời trang trong .NET 4.5 trở đi?
Nếu anh ấy tuyên bố rằng "Microsoft đề xuất" thì anh ấy sẽ có thể hiển thị đề xuất đó. Tôi chưa từng thấy một thứ như vậy. –
Bạn bè của bạn là khó hiểu song song với không đồng bộ. – dcastro
@ JonSkeet bạn thấy tôi không muốn hỏi anh ta bằng chứng trước khi tôi thực sự làm nghiên cứu của tôi cho tôi không muốn xuất hiện thù địch. Điều gì sẽ xảy ra nếu câu trả lời của bạn (hoặc một số khác) giống như "chắc chắn, mọi người đều biết nó đã lỗi thời - chúng tôi chỉ giữ nó ở đó cho những người già"? – agfc