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.