nó có thể thay thế hoàn toàn cách sử dụng cũ của Threads không?
Không. Một chuỗi có thể làm được nhiều điều hữu ích hơn. Chờ đợi được thiết kế đặc biệt để đối phó với một cái gì đó dành thời gian, điển hình nhất một I / O yêu cầu. Theo 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 lệnh gọi lại này là khá khó khăn, hãy chờ đợi để đơn giản hóa nó.
có khả năng làm những gì mà một Thread có thể làm không đồng bộ?
Đại khái. Await chỉ lo xử lý sự chậm trễ, nó không làm bất cứ điều gì mà một luồng làm. Biểu thức await , ở bên phải của từ khóa await, là những gì hoàn thành công việc. Lý tưởng nhất là nó không sử dụng một luồng nào cả, nó đăng một yêu cầu trình điều khiển và khi trình điều khiển hoàn thành việc truyền dữ liệu, nó sẽ tạo ra một cuộc gọi lại thông báo hoàn thành. Cho đến nay, mạng là cách sử dụng phổ biến nhất, độ trễ hàng trăm mili giây là phổ biến và là 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 sang "đám mây". Việc sử dụng đồng bộ các dịch vụ như vậy sẽ làm cho giao diện người dùng 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
Không. Bạn có thể sử dụng nó với bất kỳ phương thức nào trả về một Tác vụ. Các phương thức XxxxAsync () chỉ là những phương thức được nấu sẵn trong .NET framework cho các hoạt động phổ biến cần thời gian. Giống như tải dữ liệu từ máy chủ web.