Middle — Middle+
91
Объясните назначение и работу объекта CancellationToken в контексте асинхронного программирования.
Companies where asked
ООО Клеркгрупп
Answer from AI
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 обеспечивает механизм безопасной и кооперативной отмены асинхронных операций.