.NET Core 3.0
プロジェクト今日、データベース接続を使用します(たとえばASP.NET Core Web API
)、データベースとの通信中に非同期操作を行う場所はまだありますか?
または言い換えると、データベースを直接クエリしている間、常に(デフォルトで)Data Repositoryメソッドでasync/awaitを使用する必要がありますか? ToListAsync
、FirstOrDefaultAsync
を使用して話しているのですか?
データベースとの通信中に非同期操作を使用しないことの利点を見つけるのに苦労しています。
非同期のポイントは、より遅いサービス/デバイスが応答するのを待っている間、スレッドが他の作業を実行できるようにすることです。
それであなたのスレッドは他の仕事をするのに必要ですか?
限られた数のスレッドによる高速アクセスが必要な場合は、非同期でデータベースにクエリを実行するほうが高速です。ただし、スレッドを高速で消費するため、追加のパフォーマンスが必要で、メソッドが1つまたは2つのスレッドでのみ使用されることがわかっている場合にのみ使用してください。
バックグラウンドワーカーなどのように、Web APIメソッドからnone非同期メソッドを使用すると、多くのクライアントが接続し、そのWeb APIメソッドを使用するときに、スレッドプールのスレッドが不足します。