lezione 04

async/await

task async e gestione errori.

livello: intermedio durata: 26 min output: pipeline async badge: c# essentials

async/await

async Task<int> GetAsync() => await Task.FromResult(42);

exception

try { throw new Exception("fail"); }
catch (Exception ex) { Console.WriteLine(ex.Message); }

collezioni

var tags = new List<string> { "ai", "film" };

linq

var data = new List<int> {1,2,3};
var out = data.Where(x => x > 1).ToList();

esercizi

definisci un metodo async e attendi il risultato.

async Task<int> LoadAsync() => await Task.FromResult(42);
var value = await LoadAsync();
Console.WriteLine(value);

panoramica

In questo capitolo su async/await lavoriamo su async/await, exception, collezioni, linq per creare micro-pattern riutilizzabili.

lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali.

badge: c# essentials

obiettivi

  • capire e applicare async/await in uno scenario reale
  • capire e applicare exception in uno scenario reale
  • capire e applicare collezioni in uno scenario reale
  • capire e applicare linq in uno scenario reale

scheda rapida

async Task<int> GetAsync() => await Task.FromResult(42);

adatta questo scheletro agli esempi della lezione.

tips

  • preferisci async/await
  • usa record per dati immutabili
  • inietta dipendenze
  • testa i servizi
  • documenta le api
  • gestisci timeout e cancellazioni

tip: documenta ogni scelta architetturale.

mini progetto

crea un metodo async e gestisci errori.

  • definisci Task
  • await
  • log

output atteso: task completato.

checklist

  • ho eseguito gli snippet e controllato l'output
  • ho annotato almeno 2 trade-off
  • ho completato il mini progetto
  • ho salvato un riepilogo personale
start a brief