Sobes.tech
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.