Middle — Middle+
Leg uit wat het doel en de werking van het object CancellationToken is in de context van asynchrone programmeren.
sobes.tech AI
Antwoord van 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 обеспечивает механизм безопасной и кооперативной отмены асинхронных операций.