Tôi đã tìm thấy Difference between […]Async and Begin[…] .net asynchronous APIs câu hỏi nhưng this answer làm tôi bối rối một chút.APM, EAP và TPL trên Lập trình Socket
Nói về những mô hình, Stephen nói:
Hầu hết các phương pháp * Async (tương ứng với các sự kiện * Completed) đang sử dụng các sự kiện dựa trên mẫu không đồng bộ. Các cũ hơn (nhưng vẫn hoàn toàn hợp lệ) Begin * và End * là một mô hình được gọi là mô hình lập trình không đồng bộ.
Lớp Socket là ngoại lệ đối với quy tắc này; * Các phương thức Async không có bất kỳ sự kiện tương ứng nào; về cơ bản nó chỉ là APM được thực hiện theo cách để tránh phân bổ bộ nhớ quá mức.
Tôi hiểu nó bằng cách sử dụng * Các phương pháp không đồng bộ hiệu quả hơn, ít nhất là khi nói đến ổ cắm. Nhưng sau đó, anh ta đã đề cập đến Thư viện công việc song song:
Tuy nhiên, cả APM và EBAP đều được thay thế bằng cách tiếp cận linh hoạt hơn dựa trên Thư viện song song nhiệm vụ. Vì TPL có thể kết nối dễ dàng các APM, các lớp học cũ hơn có thể sẽ không được cập nhật trực tiếp; các phương thức mở rộng được sử dụng để cung cấp các công việc tương đương cho các phương thức APM cũ.
tôi thấy TPL and Traditional .NET Asynchronous Programming trên MSDN, tôi biết những điều cơ bản của TPL, tạo ra các nhiệm vụ, hủy, continuations, vv nhưng tôi vẫn không hiểu sau đây:
những ưu điểm của Asynchronous Programming Mẫu là gì (APM) và Mẫu không đồng bộ dựa trên sự kiện (EAP) so với nhau? Làm thế nào để TPL có thể bọc APM dễ dàng có nghĩa là cả APM và EAP là được thay thế bằng TPL?
Và quan trọng nhất: Tôi nên sử dụng công cụ nào trong lập trình socket;
- APM?
- EAP?
- APM hoặc EAP được thực hiện bởi một nhiệm vụ?
- TPL bằng cách sử dụng các phương pháp chặn của lớp Socket trong công việc?
- Khác?
xem: http://stackoverflow.com/questions/5834755/turning-async-socket-parallel-and-not-only-concurrent- trong-rất-chuyên sâu-applicat –