Tôi đang nghiên cứu việc sử dụng Thư viện song song nhiệm vụ cho một dự án làm việc tôi đang làm và muốn hiểu những ưu điểm/nhược điểm của các tác vụ chạy dài. Tôi chưa có một ví dụ thực tế, chỉ muốn hiểu lý thuyết đằng sau điều này.Task Parallel Library - Nhiệm vụ LongRunning vs Nhiều Continuations
Từ những trang MSDN nói về task schedulers và điều này SO question, có vẻ như tốt nhất là tránh các tác vụ lâu dài càng nhiều càng tốt để bạn không tạo chủ đề bên ngoài ThreadPool. Nhưng nói rằng bạn đã có một nhiệm vụ được sẽ mất một thời gian dài để hoàn thành, thay vì điều này:
Task.Factory.StartNew(() => DoTimeConsumingWork(), TaskCreationOptions.LongRunning)
Bạn có thể thử và chia tay công việc của bạn thành nhỏ hơn, đơn vị nhanh hơn công việc và sử dụng continuations nhiệm vụ, như này:
Task.Factory
.StartNew(() => DoWorkPart1())
.ContinueWith(t => DoWorkPart2())
.ContinueWith(t => DoWorkPart3())
//...etc
Phương pháp này có mang lại lợi ích hơn hoặc quá mức cho những gì nó đang cố gắng đạt được không?
Nó thực sự phụ thuộc vào ý của bạn * dài *. –