2012-01-18 18 views
12

Tôi luôn thấy các từ khóa không đồng bộ được sử dụng trong Silverlight nhưng đã tự hỏi liệu có ai đó có lời giải thích của dummy về nó là gì không và khi nào nên sử dụng và lợi ích của nó. Xin vui lòng nếu bạn có thể giải thích, sẽ được đánh giá rất nhiều. Cảm ơn bạn.Điều gì là không đồng bộ và chờ đợi và khi nào bạn sẽ sử dụng chúng trong phát triển cửa sổ?

+0

này đi lên rất nhiều với luồng Đây là một chủ đề khá lớn, nhưng nếu bạn chỉ muốn một thực tế câu trả lời một câu cơ bản, không đồng bộ có nghĩa là hai mọi thứ xảy ra trong thời gian độc lập với nhau. Ví dụ, bạn có một nút truy vấn cơ sở dữ liệu. Nếu bạn không đi ra khỏi con đường của bạn để làm cho nó không đồng bộ, toàn bộ chương trình của bạn sẽ dừng lại và chờ đợi cho rằng để kết thúc trước khi cho phép bạn làm bất cứ điều gì khác. Nếu bạn không muốn điều đó xảy ra, bạn có thể làm cho nó không đồng bộ (thường là bằng cách sử dụng một chủ đề khác), và vẫn giữ quyền kiểm soát giao diện người dùng của bạn, ví dụ. – CptSupermrkt

+0

@CptSupermrkt nó đề cập đến rằng một trong những điểm chính của async/await là * để tránh phải sinh ra các chủ đề mới *. Xem, ví dụ: http://blogs.msdn.com/b/ericlippert/archive/2010/10/29/asynchronous-programming-in-c-5-0-part-two-whence-await.aspx, nói một phần "Toàn bộ các điểm của các phương thức không đồng bộ mà bạn ở lại trên luồng hiện tại càng nhiều càng tốt". – phoog

+0

@phoog - Chủ đề sinh sản không giống như đề cập đến chuỗi chính xác. –

Trả lời

12

Hãy xem this blog post, nó mang đến một lời giới thiệu và giải thích thú vị về những gì không đồng bộ và đang chờ đợi.

Nếu bạn muốn thực sự hiểu nó, có một cái nhìn tại Jon Skeet's series on async and await

+0

Liên kết đầu tiên "bài đăng trên blog này" thật đáng kinh ngạc và hữu ích. Làm rõ rất nhiều thứ. –

+3

Trong khi điều này về lý thuyết có thể trả lời câu hỏi, [nó sẽ là thích hợp hơn] (// meta.stackoverflow.com/q/8259) để bao gồm các phần thiết yếu của câu trả lời ở đây, và cung cấp liên kết để tham khảo. – Makyen

15

Bắt đầu với my introductory article in MSDN magazine.

Và sau đó đọc the papers on the async CTP site.

Và sau đó đọc these fifteen articles:.

Nếu bạn vẫn còn thắc mắc, hãy thử hỏi theo số the async forum.

+2

Trong khi điều này về lý thuyết có thể trả lời câu hỏi, [nó sẽ là thích hợp hơn] (// meta.stackoverflow.com/q/8259) để bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. – Makyen

+0

@Makyen: Tôi khuyến khích bạn viết một câu trả lời thực hiện chính xác điều đó. Bằng cách đó, tất cả chúng ta đều được hưởng lợi từ sự khôn ngoan của bạn. –

+2

Tôi chắc rằng bạn đủ điều kiện tốt hơn tôi. Nhận xét của tôi nhằm mục đích nhắc nhở bạn rằng đây là một trong những câu trả lời đã bị ảnh hưởng bởi sự thay đổi trong SO trong những năm qua. Nó đã biến mất hoàn toàn chấp nhận được "không phải là một câu trả lời" do chỉ là một tập hợp các liên kết (một trong số đó đã chết; trước khi nó chết nó thay đổi đáng kể sau khi bạn thêm nó ở đây). Thực tế là một liên kết đã chết là một ví dụ tốt về lý do tại sao nó thích hợp hơn để bao gồm các yếu tố cần thiết ở đây. – Makyen

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