2012-11-28 28 views
6

Nếu một phương thức được khai báo là 'không đồng bộ', khi chúng ta gọi phương thức đó, chúng ta có thể sử dụng đang chờ hoặc không sử dụng nó. Tôi muốn biết khi nào nên sử dụng nó và tác động của việc sử dụng nó là gì.Khi nào sử dụng từ khóa chờ đợi

+1

Bạn tiếp cận nó ngược: bạn nên sử dụng 'async' chỉ khi bạn cần sử dụng' await'. Bạn sử dụng 'await' khi bạn cần phải chờ đợi một cách không đồng bộ cho một số thao tác. –

Trả lời

2

Từ khóa không đồng bộ chỉ là một chỉ báo cho trình biên dịch mà phương thức có thể chứa câu lệnh chờ.

Có một bài thú vị bởi Eric Lippert giải thích sự lựa chọn thiết kế

Yêu cầu "async" có nghĩa là chúng ta có thể loại bỏ tất cả các vấn đề tương thích ngược cùng một lúc; bất kỳ phương thức nào có biểu thức chờ đợi phải là mã "xây dựng mới", không phải là mã "công việc cũ", vì mã "công việc cũ" chưa bao giờ có công cụ sửa đổi không đồng bộ.

http://blogs.msdn.com/b/ericlippert/archive/2010/11/11/whither-async.aspx

1

Phương pháp async rõ rệt thường sử dụng đang chờ đợi để chỉ định điểm treo. Toán tử await cho trình biên dịch biết rằng phương thức async không thể tiếp tục qua điểm đó cho đến khi quá trình không đồng bộ được chờ đợi hoàn tất. Trong khi chờ đợi, kiểm soát trả về cho người gọi của phương pháp async.

nói cách khác nếu bạn đang làm lập trình asyncronius và muốn chạy nhiệm vụ chủ đề nhất định simultaniusly bạn sẽ muốn dựa vào async và chờ

giải thích chi tiết hơn đang ở đây

http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx

Các vấn đề liên quan