2017-07-21 7 views
0

いくつかのコードサンプルでは、​​以下のようなコードをいくつか示しています。asyncキーワードのビューを返す

これは、非同期アクション結果メソッドを含むビューをビュー結果として返すことをお勧めします。自己非同期をサポートしていません。

通常のシナリオでは正常に動作していますが、問題が発生したり、問題が発生する可能性があります。

+0

Microsoftには実際にこれに関するいくつかの公式文書があるようです:https://docs.microsoft.com/en-us/aspnet/mvc/overview/performance/using-asynchronous-methods-in-aspnet-mvc-4 –

+0

あなたの処理ロジックに 'await'キーワードを持つ操作が含まれている限り、' async'とマークされたコントローラメソッドを使用して、モデルが空のビューを返すことができます。 –

答えて

0

asyncawaitを使用すると、Webアプリケーションをスケーラブルにすることができます。基本的には、1つのスレッドがである必要はないので、のみ1の要求に割り当てられるように、スレッドプールの利用に役立ちます。あなたはこのアクションがあるとします。

public async Task<IActionResult> AddUser(User user) 
{ 
     ///Logic to add user 
     return await Task.Run(() => View()); 
} 

完了するための非同期メソッドを待っている間に、スレッドは、別の作業項目(非同期としてマーク例えば別のアクション)のために割り当てられるために利用可能になると言われています.NETランタイムスレッドプールグローバルキュー。これにより、スレッドの数は、処理が必要な要求の数よりも少なくなる可能性があります。

async修飾子は、上記のメカニズムを適用できる作業項目であることを.NET実行時に通知するためのマークが付けられています。 awaitがなければ、性能やリソースの最適化の点では(「何も言いたくない」と言いたくない)ことはあまり役に立ちません。

関連する問題