.NET

Async trong ASP.NET Core

async/await trong controller, CancellationToken, streaming responses, timeout, async filter, IAsyncEnumerable

20 câu hỏi phỏng vấn·
Mid-Level
1

Tại sao nên dùng async/await trong controller action của ASP.NET Core?

Câu trả lời

Việc dùng async/await trong controller giải phóng các thread của thread pool trong khi thực hiện các thao tác I/O (cơ sở dữ liệu, API bên ngoài). Điều này cải thiện khả năng mở rộng của server bằng cách cho phép thread xử lý các request khác trong lúc chờ. Nếu không có async, thread vẫn bị chặn và tiêu tốn tài nguyên không cần thiết, giới hạn số lượng request đồng thời.

2

Điều gì xảy ra nếu một controller action trả về Task<IActionResult> mà không dùng async/await?

Câu trả lời

Trả về Task<IActionResult> mà không dùng async/await vẫn hoạt động nếu bạn trả về trực tiếp một Task có sẵn (return dbContext.SaveChangesAsync();). Tuy nhiên, nếu không có từ khóa async, bạn không thể dùng await trong thân phương thức. Hầu hết thời gian, dùng async cho phép await nhiều thao tác bất đồng bộ và xử lý lỗi bằng try/catch.

3

Sự khác biệt giữa ToList() và ToListAsync() trong một controller action là gì?

Câu trả lời

ToList() là đồng bộ và chặn thread trong khi truy vấn cơ sở dữ liệu, làm hạn chế khả năng mở rộng. ToListAsync() là bất đồng bộ và giải phóng thread trong khi thực hiện I/O, cho phép server xử lý các request khác. Luôn dùng ToListAsync() trong controller để tối đa hóa số lượng request đồng thời được hỗ trợ.

4

Vai trò của CancellationToken trong controller action là gì?

5

Làm thế nào để lấy CancellationToken trong một controller action của ASP.NET Core?

+17 câu hỏi phỏng vấn

Nắm vững .NET cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí