
Async trong ASP.NET Core
async/await trong controller, CancellationToken, streaming responses, timeout, async filter, IAsyncEnumerable
1Tại sao nên dùng async/await trong controller action của ASP.NET Core?
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?
Đ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.
3Sự khác biệt giữa ToList() và ToListAsync() trong một controller action là gì?
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ợ.
Vai trò của CancellationToken trong controller action là gì?
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
Các chủ đề phỏng vấn .NET khác
Cơ bản về C#
LINQ & Delegates
Kiến thức cốt lõi ngôn ngữ C#
Kiến thức cơ bản về ASP.NET Core
Vòng đời request trong ASP.NET Core
Configuration & Settings
Vòng đời ứng dụng
Dependency Injection
Entity Framework Core
Minimal APIs
Phát triển Web API
Authentication & Authorization
HttpClient & Networking
Tuần tự hóa JSON
Entity Framework Core nâng cao
Các tính năng nâng cao của C#
Clean Architecture
Logging, Monitoring & Observability
Kiểm thử đơn vị & xUnit
Kiểm thử tích hợp
Docker & Containerization
Quản lý gói NuGet
Memory Management & GC
Lập trình phản ứng
Async/await & Mẫu thiết kế
.NET Design Patterns
Tối ưu hóa hiệu năng
Bảo mật & Best Practices
SignalR & Thời gian thực
Kiến trúc Microservices
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í