いくつかのコードサンプルでは、以下のようなコードをいくつか示しています。asyncキーワードのビューを返す
これは、非同期アクション結果メソッドを含むビューをビュー結果として返すことをお勧めします。自己非同期をサポートしていません。
通常のシナリオでは正常に動作していますが、問題が発生したり、問題が発生する可能性があります。
いくつかのコードサンプルでは、以下のようなコードをいくつか示しています。asyncキーワードのビューを返す
これは、非同期アクション結果メソッドを含むビューをビュー結果として返すことをお勧めします。自己非同期をサポートしていません。
通常のシナリオでは正常に動作していますが、問題が発生したり、問題が発生する可能性があります。
async
とawait
を使用すると、Webアプリケーションをスケーラブルにすることができます。基本的には、1つのスレッドがである必要はないので、はのみ1の要求に割り当てられるように、スレッドプールの利用に役立ちます。あなたはこのアクションがあるとします。
public async Task<IActionResult> AddUser(User user)
{
///Logic to add user
return await Task.Run(() => View());
}
完了するための非同期メソッドを待っている間に、スレッドは、別の作業項目(非同期としてマーク例えば別のアクション)のために割り当てられるために利用可能になると言われています.NETランタイムスレッドプールグローバルキュー。これにより、スレッドの数は、処理が必要な要求の数よりも少なくなる可能性があります。
async
修飾子は、上記のメカニズムを適用できる作業項目であることを.NET実行時に通知するためのマークが付けられています。 await
がなければ、性能やリソースの最適化の点では(「何も言いたくない」と言いたくない)ことはあまり役に立ちません。
Microsoftには実際にこれに関するいくつかの公式文書があるようです:https://docs.microsoft.com/en-us/aspnet/mvc/overview/performance/using-asynchronous-methods-in-aspnet-mvc-4 –
あなたの処理ロジックに 'await'キーワードを持つ操作が含まれている限り、' async'とマークされたコントローラメソッドを使用して、モデルが空のビューを返すことができます。 –