Middle — Middle+
88
Объясните назначение и работу объекта CancellationToken в контексте асинхронного программирования.
Компании, где спрашивали
ООО Клеркгрупп
Ответ от нейросети
sobes.tech AI
Объект CancellationToken используется для координации отмены асинхронных операций в C#. Он позволяет передавать сигнал отмены из вызывающего кода в выполняющуюся задачу.
Основные моменты:
CancellationTokenсам по себе не отменяет операцию, а лишь предоставляет возможность проверить, была ли запрошена отмена.- Обычно создаётся
CancellationTokenSource, который генерируетCancellationTokenи может инициировать отмену вызовомCancel(). - Асинхронный метод периодически проверяет свой
CancellationToken(например, через свойствоIsCancellationRequestedили методThrowIfCancellationRequested()), чтобы корректно завершить работу при отмене.
Пример использования:
var cts = new CancellationTokenSource();
var token = cts.Token;
Task.Run(() => {
for (int i = 0; i < 100; i++)
{
token.ThrowIfCancellationRequested();
// Выполнение части работы
Thread.Sleep(100);
}
}, token);
// Позже, чтобы отменить:
cts.Cancel();
Таким образом, CancellationToken обеспечивает механизм безопасной и кооперативной отмены асинхронных операций.