Sobes.tech
Junior — Middle

Jak można użyć CancellationToken do anulowania operacji asynchronicznych w Twoim projekcie?

sobes.tech AI

Odpowiedź od AI

CancellationToken w C# jest używany do anulowania operacji asynchronicznych, umożliwiając poprawne przerwanie zadania na żądanie.

W projekcie można przekazywać CancellationToken do metod obsługujących anulowanie i sprawdzać jego stan w kodzie asynchronicznym. Jeśli token sygnalizuje anulowanie, operacja powinna zakończyć się wcześniej, zwalniając zasoby.

Przykład użycia:

public async Task LoadDataAsync(CancellationToken cancellationToken)
{
    for (int i = 0; i < 10; i++)
    {
        cancellationToken.ThrowIfCancellationRequested();
        await Task.Delay(1000); // symulacja pracy
    }
}

// Wywołanie z możliwością anulowania
var cts = new CancellationTokenSource();
var task = LoadDataAsync(cts.Token);

// Anuluj po 3 sekundach
cts.CancelAfter(3000);

try
{
    await task;
}
catch (OperationCanceledException)
{
    Console.WriteLine("Operacja została anulowana");
}

Takie podejście pozwala elastycznie zarządzać czasem wykonywania asynchronicznych zadań i poprawia responsywność aplikacji.