
Async в ASP.NET Core
async/await у контролерах, CancellationToken, streaming responses, timeout, async filter, IAsyncEnumerable
1Навіщо використовувати async/await в action контролерів ASP.NET Core?
Навіщо використовувати async/await в action контролерів ASP.NET Core?
Відповідь
Використання async/await у контролерах звільняє потоки з thread pool під час операцій I/O (база даних, зовнішні API). Це покращує масштабованість сервера, дозволяючи потоку обробляти інші запити під час очікування. Без async потік залишається заблокованим і марно споживає ресурси, обмежуючи кількість одночасних запитів.
2Що відбувається, якщо action контролера повертає Task<IActionResult> без використання async/await?
Що відбувається, якщо action контролера повертає Task<IActionResult> без використання async/await?
Відповідь
Повернення Task<IActionResult> без async/await працює, якщо ви безпосередньо повертаєте наявну Task (return dbContext.SaveChangesAsync();). Однак без ключового слова async ви не можете використовувати await у тілі методу. У більшості випадків використання async дозволяє очікувати кілька асинхронних операцій та обробляти помилки за допомогою try/catch.
3Яка різниця між ToList() і ToListAsync() в action контролера?
Яка різниця між ToList() і ToListAsync() в action контролера?
Відповідь
ToList() є синхронним і блокує потік під час запиту до бази даних, обмежуючи масштабованість. ToListAsync() є асинхронним і звільняє потік під час операції I/O, дозволяючи серверу обробляти інші запити. Завжди використовуйте ToListAsync() у контролерах, щоб максимізувати кількість підтримуваних одночасних запитів.
Яка роль CancellationToken в action контролерів?
Як отримати CancellationToken в action контролера ASP.NET Core?
+17 питань зі співбесід
Інші теми співбесід .NET
Основи C#
LINQ & Delegates
Основи мови C#
Основи ASP.NET Core
Життєвий цикл запиту в ASP.NET Core
Configuration & Settings
Життєвий цикл застосунку
Dependency Injection
Entity Framework Core
Minimal APIs
Розробка Web API
Authentication & Authorization
HttpClient & Networking
Серіалізація JSON
Entity Framework Core просунутий
Розширені можливості C#
Clean Architecture
Logging, Monitoring & Observability
Модульне тестування та xUnit
Інтеграційні тести
Docker & Containerization
Керування пакетами NuGet
Memory Management & GC
Реактивне програмування
Async/await і патерни
.NET Design Patterns
Оптимізація продуктивності
Безпека та Best Practices
SignalR і реальний час
Архітектура мікросервісів
Опануй .NET для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно