2011-02-08 69 views
7

Thay đổi bộ điều khiển đồng bộ ASP.NET MVC (Controller) thành bộ điều khiển không đồng bộ (AsyncController) có vẻ như một điều nhỏ nhặt cần làm, nhưng khi nào bạn nên làm điều đó?Khi nào bạn nên sử dụng Bộ điều khiển Async trong ASP.NET MVC?

Tôi có nên chỉ làm cho mọi bộ điều khiển không đồng bộ bất kể hành động của nó không? Ví dụ về các hoạt động sẽ được cải thiện nếu được sử dụng trong một bộ điều khiển không đồng bộ là gì?

Lấy ví dụ nhỏ nhất: các trang html tĩnh. Vì vậy, bạn có cơ bản nhất của bộ điều khiển mà chỉ cần trả về một View từ hành động Index. Bộ điều khiển này có nên được thay đổi thành không đồng bộ tức là bây giờ trở về từ IndexCompleted không?

+2

Bản sao có thể có của [Bộ điều khiển Async ASP.NET MVC4 - Tại sao nên sử dụng?] (Http://stackoverflow.com/questions/15190112/asp-net-mvc4-async-controller-why-to-use) – Luiso

+0

@ Luiso Câu hỏi của tôi đã được hỏi hai năm trước. –

Trả lời

8

Gần đây, tôi đã đọc được article này. Nó nghĩ rằng nó tóm tắt những gì AsyncController là ment cho.

6

Tôi biết đây là một câu hỏi cũ nhưng tôi đã cố gắng để có được câu trả lời, vì vậy heres hai xu của tôi.

Giống như nói rằng nếu chúng ta không bị sốt, tôi vẫn nên uống thuốc. Bạn nên sử dụng bộ điều khiển Asynch nếu bạn thấy nạn đói trên máy chủ web của mình. IIS webserver duy trì một nhóm các chủ đề. Vì vậy, khi bất kỳ yêu cầu đến trong ông chọn lên các chủ đề từ hồ bơi thread. Nếu tại một thời điểm nhất định tất cả các chủ đề từ các hồ bơi được sử dụng và yêu cầu đến, yêu cầu đó đi trong một chế độ chờ đợi. Tình trạng này được gọi là "nạn đói". Bạn cũng có thể xem youtube video này nơi mà tôi đã chứng minh như thế nào MVC chủ đề đói trông giống như

http://www.youtube.com/watch?v=wvg13n5V0V0

Web Server Thread Use Diagram

Khi bạn thực hiện điều khiển của bạn như asynch, nó sử dụng các chủ đề, spawns các hoạt động, và di chuyển chủ đề đó trở lại hồ bơi thread để nó có thể được sử dụng cho các yêu cầu khác đến trong ứng dụng MVC. Khi thao tác kết thúc, anh ta kéo trở lại luồng từ nhóm luồng và hiển thị khung nhìn.

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