web-dev-qa-db-ja.com

いつそれが必要なのか、いつコントローラーを非同期にするのか

コントローラーが非同期であることが絶対に必要なのはいつですか?すべてのコントローラーが非同期である必要がありますか、それとも、必要でない限りすべてのコントローラーを非同期にするのは悪い習慣です。いくつかの一般的なガイドラインを探しています。

7
SOfanatic

コントローラが非同期であることは絶対にnever必要です。コントローラーメソッドの呼び出しは最終的にを返します。ただし、Webサーバーが長期間ブロックされないように、実行時間の長いタスクをスレッドに渡すことが望ましい場合があります。

everyコントローラを非同期にする必要はありません。新しいスレッドの作成には、ある程度のオーバーヘッドが伴います。すべてのコントローラーを非同期にすると、実際には速度が低下する可能性があります。

長時間実行される非CPUバインド要求には非同期アクションメソッドを使用します。これにより、リクエストの処理中にWebサーバーが作業を実行するのを防ぐことができます。 AsyncControllerクラスの一般的な用途は、長時間実行されるWebサービス呼び出しです。

http://msdn.Microsoft.com/en-us/library/ee728598(v = vs.100).aspx

8
Robert Harvey