Tôi cần thực hiện 3 tác vụ song song và sau khi hoàn thành mỗi tác vụ, họ nên gọi cùng một chức năng để in ra kết quả.Các đại biểu không đồng bộ Vs Thread/ThreadPool?
Tôi không hiểu trong .net lý do tại sao chúng tôi có cuộc gọi không đồng bộ (delegate.BeginInvoke() & delegate.EndInvoke()) cũng như lớp Thread?
Tôi hơi bối rối khi sử dụng khi nào? Bây giờ trong trường hợp cụ thể này, tôi nên sử dụng Asychronous calling hoặc Thread class?
Tôi đang sử dụng C#.
Một trường hợp khác để sử dụng lớp chuỗi (# 4) thay vì bất kỳ thay thế dựa trên luồng nào (# 1- # 3): Nếu bạn sử dụng bất kỳ lớp nào lưu trữ tham chiếu đối tượng trong trường tĩnh-tĩnh, mục tiêu trực tiếp hoặc gián tiếp của những tài liệu tham khảo đó sẽ không đủ điều kiện để thu thập rác trừ khi hoặc cho đến khi tài liệu tham khảo bị xóa hoặc luồng chứa chúng thoát. Nếu các tham chiếu luồng-tĩnh được lưu trữ trên một luồng thread-pool, có thể chúng sẽ tồn tại ở đó vô thời hạn, có thể tạo ra một rò rỉ bộ nhớ lớn. – supercat
Điều này có vẻ là câu trả lời tốt nhất, tuy nhiên nó là một chút liên quan đến việc không ai đề cập đến bão hòa ThreadPool hoặc gợi ý rằng thời gian để chạy đại biểu ảnh hưởng đến quyết định của bạn. ThreadPool/TaskPool là để nhanh chóng hoàn thành công việc trên một chủ đề nền, nhưng nên giới hạn trong công việc mất ít hơn 50-150ms. Đưa công việc nặng (tức là dài hơn 150ms) có thể dẫn đến độ bão hòa hồ bơi thread và sau đó bạn có thể nhận được sự chậm trễ khó chịu 500ms trong khi thứ ThreadPool thay đổi kích thước. –