
Async w ASP.NET Core
async/await w kontrolerach, CancellationToken, streaming responses, timeouty, async filtry, IAsyncEnumerable
1Dlaczego warto używać async/await w akcjach kontrolerów ASP.NET Core?
Dlaczego warto używać async/await w akcjach kontrolerów ASP.NET Core?
Odpowiedź
Użycie async/await w kontrolerach zwalnia wątki z thread pool podczas operacji I/O (baza danych, zewnętrzne API). Poprawia to skalowalność serwera, pozwalając wątkowi obsługiwać inne żądania podczas oczekiwania. Bez async wątek pozostaje zablokowany i niepotrzebnie zużywa zasoby, ograniczając liczbę równoczesnych żądań.
2Co się dzieje, gdy akcja kontrolera zwraca Task<IActionResult> bez użycia async/await?
Co się dzieje, gdy akcja kontrolera zwraca Task<IActionResult> bez użycia async/await?
Odpowiedź
Zwracanie Task<IActionResult> bez async/await działa, jeśli bezpośrednio zwracasz istniejące Task (return dbContext.SaveChangesAsync();). Jednak bez słowa kluczowego async nie można używać await w ciele metody. Najczęściej użycie async pozwala oczekiwać na wiele operacji asynchronicznych i obsługiwać błędy za pomocą try/catch.
3Jaka jest różnica między ToList() a ToListAsync() w akcji kontrolera?
Jaka jest różnica między ToList() a ToListAsync() w akcji kontrolera?
Odpowiedź
ToList() jest synchroniczny i blokuje wątek podczas zapytania do bazy danych, ograniczając skalowalność. ToListAsync() jest asynchroniczny i zwalnia wątek podczas operacji I/O, pozwalając serwerowi obsługiwać inne żądania. Zawsze używaj ToListAsync() w kontrolerach, aby zmaksymalizować liczbę obsługiwanych równoczesnych żądań.
Jaka jest rola CancellationToken w akcjach kontrolerów?
Jak uzyskać CancellationToken w akcji kontrolera ASP.NET Core?
+17 pytań z rozmów
Inne tematy rekrutacyjne .NET
Podstawy C#
LINQ & Delegates
Podstawy języka C#
Podstawy ASP.NET Core
Cykl życia żądania w ASP.NET Core
Configuration & Settings
Cykl życia aplikacji
Dependency Injection
Entity Framework Core
Minimal APIs
Tworzenie Web API
Authentication & Authorization
HttpClient & Networking
Serializacja JSON
Entity Framework Core zaawansowany
Zaawansowane funkcje C#
Clean Architecture
Logging, Monitoring & Observability
Testy jednostkowe & xUnit
Testy integracyjne
Docker & Containerization
Zarządzanie pakietami NuGet
Memory Management & GC
Programowanie reaktywne
Async/await i wzorce
.NET Design Patterns
Optymalizacja wydajności
Bezpieczeństwo i Best Practices
SignalR i czas rzeczywisty
Architektura Mikroserwisów
Opanuj .NET na następną rozmowę
Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.
Zacznij za darmo