Tôi muốn chuỗi Task
s, sau đó bắt đầu chuỗi song song. đoạn này chỉ là để minh họa cho câu hỏi của tôi:Cách thích hợp để chuỗi Nhiệm vụ
var taskOrig = new Task(() => { });
var task = taskOrig;
foreach (var msg in messages)
{
task=task.ContinueWith(t => Console.WriteLine(msg));
}
taskOrig.Start();
Tất cả mọi thứ hoạt động tốt, ngoại trừ một người cầu toàn nhỏ bên trong tôi không thích người khác phương pháp có sản phẩm nào được thực hiện đầu tiên () => { }
.
Có cách nào để tránh không?
Tôi hiểu Nó hầu như không ảnh hưởng đến hiệu suất (trừ khi bạn thực hiện thường xuyên), nhưng vẫn còn. Các vấn đề về hiệu suất trong trường hợp của tôi, vì vậy hãy kiểm tra xem tác vụ có tồn tại trong mỗi lần lặp không phải là cách để thực hiện nó.
"các vấn đề hiệu suất trong trường hợp của tôi, vì vậy kiểm tra nếu nhiệm vụ tồn tại trong mỗi lần lặp không phải là cách để làm điều đó. ": thời gian cần thiết là không đáng kể so với thực sự thực hiện nhiệm vụ. Trừ khi bạn đã thực sự đo lường một hiệu suất hit, nó rõ ràng là một trường hợp tối ưu hóa sớm. –
@ThomasLevesque bạn có lẽ đúng, tôi chỉ nghĩ rằng có lẽ tôi đã bỏ lỡ một cái gì đó trong 'Task' tạo API. Tôi sẽ có cơ hội đánh giá hiệu suất sau này. – Anri
Bạn có thể thấy TPL DataFlow thú vị – sll