Sobes.tech
Junior — Middle

Как можете да използвате CancellationToken за отказване на асинхронни операции във вашия проект?

sobes.tech AI

Отговор от AI

CancellationToken в C# се използва за анулиране на асинхронни операции, позволявайки правилното прекъсване на задачата по желание.

В проекта може да се предаде CancellationToken към методи, които поддържат анулиране, и да се проверява неговото състояние в асинхронния код. Ако токенът сигнализира за анулиране, операцията трябва да приключи предварително, освобождавайки ресурси.

Пример за използване:

public async Task LoadDataAsync(CancellationToken cancellationToken)
{
    for (int i = 0; i < 10; i++)
    {
        cancellationToken.ThrowIfCancellationRequested();
        await Task.Delay(1000); // симулация на работа
    }
}

// Вика с възможност за анулиране
var cts = new CancellationTokenSource();
var task = LoadDataAsync(cts.Token);

// Анулиране след 3 секунди
cts.CancelAfter(3000);

try
{
    await task;
}
catch (OperationCanceledException)
{
    Console.WriteLine("Операцията беше отменена");
}

Този подход позволява гъвкаво управление на времето за изпълнение на асинхронните задачи и подобрява отзивчивостта на приложението.