
Async in ASP.NET Core
async/await nei controller, CancellationToken, streaming responses, timeout, async filter, IAsyncEnumerable
1Perché usare async/await nelle action dei controller ASP.NET Core?
Perché usare async/await nelle action dei controller ASP.NET Core?
Risposta
L'uso di async/await nei controller libera i thread del thread pool durante le operazioni I/O (database, API esterne). Questo migliora la scalabilità del server consentendo al thread di elaborare altre richieste durante l'attesa. Senza async, il thread rimane bloccato e consuma risorse inutilmente, limitando il numero di richieste concorrenti.
2Cosa succede se una action di un controller restituisce Task<IActionResult> senza usare async/await?
Cosa succede se una action di un controller restituisce Task<IActionResult> senza usare async/await?
Risposta
Restituire Task<IActionResult> senza async/await funziona se restituisci direttamente una Task esistente (return dbContext.SaveChangesAsync();). Tuttavia, senza la parola chiave async, non puoi usare await nel corpo del metodo. Nella maggior parte dei casi, usare async consente di attendere più operazioni asincrone e gestire gli errori con try/catch.
3Qual è la differenza tra ToList() e ToListAsync() in una action di un controller?
Qual è la differenza tra ToList() e ToListAsync() in una action di un controller?
Risposta
ToList() è sincrono e blocca il thread durante la query al database, limitando la scalabilità. ToListAsync() è asincrono e libera il thread durante l'operazione I/O, consentendo al server di elaborare altre richieste. Usa sempre ToListAsync() nei controller per massimizzare il numero di richieste concorrenti supportate.
Qual è il ruolo del CancellationToken nelle action dei controller?
Come ottenere il CancellationToken in una action di un controller ASP.NET Core?
+17 domande da colloquio
Altri argomenti di colloquio .NET
Fondamenti di C#
LINQ & Delegates
Fondamenti del linguaggio C#
Fondamenti di ASP.NET Core
Ciclo di vita delle richieste in ASP.NET Core
Configuration & Settings
Ciclo di vita dell'applicazione
Dependency Injection
Entity Framework Core
Minimal APIs
Sviluppo di Web API
Authentication & Authorization
HttpClient & Networking
Serializzazione JSON
Entity Framework Core avanzato
Funzionalità avanzate di C#
Clean Architecture
Logging, Monitoring & Observability
Test unitari & xUnit
Test di integrazione
Docker & Containerization
Gestione dei pacchetti NuGet
Memory Management & GC
Programmazione reattiva
Async/await & Pattern
.NET Design Patterns
Ottimizzazione delle prestazioni
Sicurezza e Best Practices
SignalR e tempo reale
Architettura a Microservizi
Padroneggia .NET per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis