có thể thay thế hoàn toàn cách cũ bằng cách sử dụng Chủ đề không?
Không. Chủ đề có thể làm nhiều việc hữu ích hơn. Chờ đợi được thiết kế đặc biệt để xử lý nội dung nào đó dành thời gian, thường là yêu cầu I/O. Truyền thống được thực hiện với một cuộc gọi lại khi yêu cầu I/O hoàn tất. Viết mã dựa trên các callbacks này khá khó khăn, chờ đợi đơn giản hóa nó.
có khả năng làm những gì mà Chủ đề có thể thực hiện không đồng bộ?
Gần đúng. Chờ đợi chỉ cần chăm sóc đối phó với sự chậm trễ, nó không làm bất cứ điều gì khác mà một thread nào. Biểu tượng chờ đợi , có gì ở bên phải của từ khóa đang chờ đợi, là những gì được thực hiện công việc. Lý tưởng nhất là nó không sử dụng một sợi nào cả, nó sẽ gửi một yêu cầu trình điều khiển và sau khi trình điều khiển hoàn tất việc truyền dữ liệu, nó tạo ra một cuộc gọi lại thông báo hoàn thành. Mạng là sử dụng phổ biến nhất, độ trễ hàng trăm mili giây là phổ biến và tác dụng phụ không thể tránh khỏi của các dịch vụ di chuyển từ máy tính để bàn hoặc mạng LAN thành "đám mây". Sử dụng các dịch vụ như vậy một cách đồng bộ sẽ làm cho một giao diện người dùng khá không phản hồi.
chỉ có thể được sử dụng với một số phương pháp như WebClient.DownloadStringAsync
số Bạn có thể sử dụng nó với bất kỳ phương thức trả về một nhiệm vụ. Các phương thức XxxxAsync() chỉ là các phương thức đã có sẵn trong khung công tác .NET cho các hoạt động phổ biến cần có thời gian. Cũng giống như tải xuống dữ liệu từ máy chủ web.
Nguồn
2013-03-01 02:34:02
Chủ đề và Async/Await là các tính năng không liên quan. Bạn có thể kết hợp chúng, nhưng bạn không phải. – dtb
Tôi nghĩ rằng Async/Await đang làm điều tương tự mà 'new Thread (() => {Some Work}). Start();' đang làm?! phải không? –
Không. Giả định của bạn là không chính xác. Bạn có thể nghĩ đến [Task.Run] (http://msdn.microsoft.com/en-us/library/hh195051.aspx) (TPL), thường được kết hợp với Async/Await, nhưng cũng không liên quan và không không phải được sử dụng với nó. – dtb