2011-02-08 6 views
7

ASP.NET MVC同期コントローラ(Controller)を非同期コントローラ(AsyncController)に変更するのは簡単なことですが、いつ行う必要がありますか?いつASP.NET MVCで非同期コントローラを使用する必要がありますか?

すべてのコントローラをその動作に関係なく非同期にする必要がありますか?非同期コントローラで使用すると改善される操作の例は何ですか?

最も単純な例:静的なHTMLページ。したがって、最も基本的なコントローラーはIndexアクションからViewを返すだけです。このコントローラを非同期、つまりIndexCompletedから戻るように変更する必要がありますか?

+2

[ASP.NET MVC4非同期コントローラの使用可能な複製](http://stackoverflow.com/questions/15190112/asp-net-mvc4-async-controller-why-to-use) – Luiso

+0

@ Luiso私の質問は2年前に尋ねられました。 –

答えて

8

私は最近articleを読んでいました。 AsyncControllerが何を対象としているのかを要約していると思います。

6

私はこれが古い質問であることを知っていますが、私は答えを得るのに苦労したので、私の2セントをheresします。

私たちが発熱しなければ、まだピルを取るべきだと言っているようです。あなたのWebサーバーにスレッド不足がある場合は、Asynchコントローラを使用する必要があります。 IIS Webサーバーはスレッドのプールを保持します。だから、リクエストが来たら、彼はスレッドプールからスレッドを取り出します。与えられた瞬間に、プールからのすべてのスレッドが利用され、要求が入った場合、その要求は待機モードになります。この状況を「ねじ山飢餓」と呼びます。また生成します、私はあなたが非同期としてあなたのコントローラを作るとき、それはスレッドを利用してスレッド不足が

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

Web Server Thread Use Diagram

どのように見えるかMVCを実証している。このユーチューブの動画を見ることができますそのスレッドをスレッドプールに戻して、MVCアプリケーションに入ってくる他の要求に利用できるようにします。操作が終了すると、スレッドプールからスレッドを引き戻してビューを表示します。

関連する問題