MVC 4の非同期タスクの背後にあるメカニズムは何ですか?通常のスレッドとどのように関連していますか?詳細をお知らせください。
4 に答える
キーワードに興味がある場合は、アンダース・ヘルスバーグとのこのチャンネル9のインタビューasync
がおもしろいとawait
思うかもしれません。
また、このPDCビデオもご覧ください。
前に示したように、async
キーワードは.Netの一部です。非同期プログラミングをより適切に実装するために、MicrosoftはこのためのいくつかのCTPをリリースしており、.Net4.5AFAIKですぐに使用できるようになります。
以下の記事も役に立ちます:
http://www.juliencorioland.net/Archives/en-aspnet-mvc-4-asynchronous-controllers
通常、単一のASP.NETページ要求は単一のスレッドによって処理されます。スレッドは応答を送信した後、ASP.NETスレッドプールに戻ります。
async
/ (または非同期ページ)を使用するawait
と、要求を処理するスレッドは要求を不完全としてマークしてから、ASP.NETスレッドプールに戻ります。後で待機が完了すると、ASP.NETスレッドが割り当てられて残りのメソッドを実行します。
より具体的には、async
/await
デフォルトでは。を使用しますSynchronizationContext
。詳細については、MSDNの記事を参照してください。
非同期タスクは、ASP.NET MVC 4ではなく.NETの機能です。ASP.NETでも、.NET内の他の場所と同じように機能します。