Sobes.tech
Back to questions
Junior — Middle
67

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

Companies where asked
ООО Клеркгрупп

Answer from AI

sobes.tech 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("Операция была отменена");
}

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