Il pattern async/await semplifica notevolmente lo sviluppo di applicazioni che coinvolgono operazioni asincrone. Quest'ultime vengono rappresentate dall'oggetto Task, ma non obbligatoriamente devono essere caratterizzate da chiamate su web, ne devono eseguire qualcosa.
Se per esempio volessimo simulare delle latenze, o eseguire qualcosa solo dopo un determinato tempo, possiamo utilizzare il metodo statico Task.Delay per ottenere un task che scatta dopo il tempo indicato. Nello snippet seguente utilizziamo questo metodo per aggiungere un ritardo dopo una chiamata web, per processare i dati solo dopo una finta latenza.
async void Load() { // Ottengo i dati da remoto var items = await LoadFromWebAsync(); // Aspetto 3 secondi await Task.Delay(3000); // Processo gli items foreach (var item in items) { // ... } }
L'overload accetta anche un CancellationToken nel caso necessitiamo di annullare l'operazione di ritardo.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Usare una container image come runner di GitHub Actions
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Aggiungere interattività lato server in Blazor 8
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Eseguire attività con Azure Container Jobs
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Eseguire attività basate su eventi con Azure Container Jobs
Come migrare da una form non tipizzata a una form tipizzata in Angular