Back to questions
Junior — Middle
65
Можете объяснить концепцию токена отмены в контексте многопоточного программирования?
Answer from AI
sobes.tech AI
Токен отмены (Cancellation Token) в многопоточном программировании — это объект, который используется для координации отмены асинхронных или параллельных операций.
Основная идея: один поток (или компонент) может запросить отмену операции, а другие, выполняющие эту операцию, могут периодически проверять состояние токена и корректно завершать работу, если отмена запрошена.
В C# это реализовано через класс CancellationToken и CancellationTokenSource:
CancellationTokenSourceсоздаёт токен и может сигнализировать об отмене.CancellationTokenпередаётся в задачи или методы, которые могут проверятьIsCancellationRequestedи реагировать на отмену.
Пример:
var cts = new CancellationTokenSource();
var token = cts.Token;
Task.Run(() => {
while (!token.IsCancellationRequested)
{
// Выполняем работу
}
// Очистка и завершение
}, token);
// Где-то в коде вызываем отмену
cts.Cancel();
Это позволяет безопасно и контролируемо прерывать долгие или фоновые операции.