Sobes.tech
Junior — Middle

Jak lze použít CancellationToken k zrušení asynchronních operací ve vašem projektu?

sobes.tech AI

Odpověď od AI

CancellationToken v C# se používá k zrušení asynchronních operací, což umožňuje správné předčasné ukončení úkolu na požádání.

V projektu lze CancellationToken předat metodám, které podporují zrušení, a kontrolovat jeho stav v asynchronním kódu. Pokud token signalizuje zrušení, operace by měla být ukončena předčasně, uvolňujíc zdroje.

Příklad použití:

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

// Volání s možností zrušení
var cts = new CancellationTokenSource();
var task = LoadDataAsync(cts.Token);

// Zrušení po 3 sekundách
cts.CancelAfter(3000);

try
{
    await task;
}
catch (OperationCanceledException)
{
    Console.WriteLine("Operace byla zrušena");
}

Tento přístup umožňuje flexibilně řídit dobu běhu asynchronních úkolů a zlepšuje odezvu aplikace.