Junior — Middle
Come si può utilizzare CancellationToken per annullare le operazioni asincrone nel tuo progetto?
sobes.tech AI
Risposta dell'AI
CancellationToken in C# viene utilizzato per annullare operazioni asincrone, consentendo di interrompere correttamente l'esecuzione di un task su richiesta.
Nel progetto, è possibile passare CancellationToken ai metodi che supportano l'annullamento e verificare il suo stato all'interno del codice asincrono. Se il token segnala l'annullamento, l'operazione deve terminare anticipatamente, liberando le risorse.
Esempio di utilizzo:
public async Task LoadDataAsync(CancellationToken cancellationToken)
{
for (int i = 0; i < 10; i++)
{
cancellationToken.ThrowIfCancellationRequested();
await Task.Delay(1000); // simulazione di lavoro
}
}
// Chiamata con possibilità di annullamento
var cts = new CancellationTokenSource();
var task = LoadDataAsync(cts.Token);
// Annulla dopo 3 secondi
cts.CancelAfter(3000);
try
{
await task;
}
catch (OperationCanceledException)
{
Console.WriteLine("Operazione annullata");
}
Questo approccio consente di gestire in modo flessibile il tempo di esecuzione delle attività asincrone e migliora la reattività dell'applicazione.