0

私が理解しているように、MVCはAsyncController、新しいスレッドが作成されたときにASP.NETスレッドプールからスレッドを盗むことを回避する問題を処理するために特別に導入されました。新しいWebAPIには同様のはありませんAsyncApiController。の継承/実装シグネチャも、およびとApiControllerは大きく異なります。ControllerAsyncController

質問: Web APIは、新しいスレッドを作成するときにASP.NETスレッドプールからスレッドを盗むことを回避する問題をすでに処理していますか?これを自動処理する新しいものがありませんか?

参考のために:

4

2 に答える 2

6

ApiControllerを実装IHttpControllerし、そのインターフェイスは、ExecuteAsyncを返す1つのメソッド()のみを定義します。Taskつまり、それApiControllerはAsyncです。

于 2012-06-20T21:59:02.227 に答える
3

MVCは、非同期メソッドをサポートするためにMVC2にAsyncControllerを導入しました。非同期コントローラーを使用しても、コードが魔法のように非同期になるわけではありません。MVC 4では、コントローラーは非同期メソッドをサポートしているため、AsyncControllerは必要ありません。非同期メソッドは、ASP.NETまたはIISスレッドを魔法のような軽量スレッドに置き換えません-非同期作業を行う場合、常にスレッドを使用しているとは限りません。たとえば、非同期Webサービス要求を行う場合、ASP.NETはasyncメソッド呼び出しとawaitの間でスレッドを使用しません。ASP.NETMVC4での非同期メソッドの使用に関するチュートリアルを参照してください

于 2012-06-20T23:44:41.333 に答える