ASP.NET の話ということであれば ASP.NET のタグをつけていただけると幸いです。
ASP.NET MVCでXXXAsync()を呼び出すメリットがわかりません。
ASP.NET 非同期処理を行う理由は、Windows Forms アプリの場合の UI の応答性の向上とは異なり、スループットを向上させ HTTP エラー 503 (サービス利用不可) になるのを防ぐということです。
以下の記事の図を見てください。
ASP.NET の非同期/待機の概要
https://msdn.microsoft.com/ja-jp/magazine/dn802603.aspx
「図 3 外部リソースを非同期に待機」が ASP.NET で非同期処理を行っているところです。
「外部リソース」というのは別のサーバーにある Web サービスとか DB サーバーです。外部リソース内での処置に時間がかかるような場合が特に有効です。
非同期処理を行わない場合は一つの要求は一つのスレッドをつかんだままになりますが、非同期処理を行うと、「外部リソース」に処理を投げた後はスレッドは即スレッドプールに戻され、他のユーザーから来る要求に対処することができます。
Thread Pool のスレッドの数は限られているので、非同期処理を行わないとスレッドが枯渇しやすくなります。枯渇するとキューに処理が溜まりますが、キューが満杯になると HTTP エラー 503 (サービス利用不可) となってしまいます。
なお、効果があるのは「外部リソース」に処理を投げるというような I/O バウンドの処理で、CPU バウンドの処理には効果はありません。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/28 07:40