2016-10-01 8 views
3

私は最近、質問をし、2つの答えを与えた:EFでASP.Net WebAPIメソッドでAsyncを使用する利点は何ですか?

The sync version: 

var phrasesCount = db.Phrases.Count(); 
The async version (assuming this is EF): 

var phrasesCount = await db.Phrases.CountAsync(); 

は、誰かが差があると、なぜ私は非同期を使用する場合がありますものを私に説明できますか?

+0

'Async'メソッドは、任意のタスクを非同期的に完了する必要がある場合に使用できます。つまり、' async'を使用すると、そのタスクが完了するのを待つ必要はありません。そのタスクが完了するまで別のタスクに進むことができます実行し、バックグラウンドで完了しました。 'async'を使用せずにプロセスが完了するのを待たなければならないので、さらに進むことができます。 –

+0

良い説明はこちら:http://stackoverflow.com/questions/27742698/difference-between-asynchronous-and-synchronous-in-net-4-5 – Sampath

答えて

5

アプリケーションが動作しているワーカープロセスには、http要求を処理するために使用できるスレッド数が限られています。目的は、スレッドを解放したままにして、着信要求を処理できるようにすることです。非同期バージョンは、呼び出しスレッドをブロックしません。これにより、そのスレッドはそれらの着信HTTP要求を処理することができます。その間に、非同期メソッドがオフになり、完了すると、実行はawait操作で中断したところで実行されます。アプリを実行していて、その例を使って2つの違いをテストすると、パフォーマンスの違いはほとんど見られません。実際の価値は、アプリケーションが処理できるスレッドよりも多くの要求を受信した場合に発生します。

関連する問題