.NET

ASP.NET Core における Async

controller における async/await、CancellationToken、streaming responses、timeout、async filter、IAsyncEnumerable

20 面接問題·
Mid-Level
1

ASP.NET Core の controller action で async/await を使うのはなぜですか?

回答

controller で async/await を使うと、I/O 操作(データベース、外部 API)の間に thread pool の thread を解放します。これにより、待機中に thread が他のリクエストを処理できるようになり、サーバーのスケーラビリティが向上します。async を使わないと thread はブロックされたまま不必要にリソースを消費し、同時リクエスト数が制限されます。

2

controller action が async/await を使わずに Task<IActionResult> を返すとどうなりますか?

回答

async/await を使わずに Task<IActionResult> を返すことは、既存の Task を直接返す場合(return dbContext.SaveChangesAsync();)は機能します。ただし async キーワードがないと、メソッド本体で await を使えません。ほとんどの場合、async を使うことで複数の非同期操作を待機し、try/catch でエラーを処理できます。

3

controller action における ToList() と ToListAsync() の違いは何ですか?

回答

ToList() は同期的で、データベースクエリの間 thread をブロックし、スケーラビリティを制限します。ToListAsync() は非同期で、I/O 操作の間 thread を解放し、サーバーが他のリクエストを処理できるようにします。サポートする同時リクエスト数を最大化するため、controller では常に ToListAsync() を使いましょう。

4

controller action における CancellationToken の役割は何ですか?

5

ASP.NET Core の controller action で CancellationToken を取得するにはどうすればよいですか?

+17 面接問題

次の面接に向けて.NETをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める