CancellationToken.LinkedTokenSource — это мощная функция C#, позволяющая эффективно управлять токенами отмены. В этой статье блога мы рассмотрим различные методы и предоставим примеры кода, которые помогут вам понять и эффективно использовать CancellationToken.LinkedTokenSource.
Методы и примеры:
- Создание CancellationToken.LinkedTokenSource:
Чтобы создать CancellationToken.LinkedTokenSource, вы можете использовать следующий фрагмент кода:
CancellationTokenSource cts1 = new CancellationTokenSource();
CancellationTokenSource cts2 = new CancellationTokenSource();
CancellationTokenLinkedTokenSource linkedTokenSource = CancellationTokenLinkedTokenSource.CreateLinkedTokenSource(cts1.Token, cts2.Token);
- Добавление и удаление токенов.
Вы можете динамически добавлять или удалять токены в связанный источник токенов с помощью методовAddиRemove. Вот пример:
linkedTokenSource.Add(cts3.Token);
linkedTokenSource.Remove(cts2.Token);
- Регистрация обратных вызовов:
Вы можете зарегистрировать обратные вызовы, которые будут выполняться при отмене любого из связанных токенов. Используйте методRegisterвместе с методомCancellationToken.Register. Вот пример:
linkedTokenSource.Token.Register(() =>
{
// Perform desired actions when the token is canceled.
Console.WriteLine("Cancellation requested!");
});
- Создание дочернего связанного источника токенов:
Вы можете создать дочерний связанный источник токенов из существующего связанного источника токенов. Это позволяет управлять вложенными сценариями отмены. Вот как это можно сделать:
CancellationTokenLinkedTokenSource childTokenSource = linkedTokenSource.CreateLinkedTokenSource();
- Утилизация и аннулирование токенов.
Не забудьте удалить и аннулировать токены и связанные источники токенов, когда они больше не нужны. Используйте методыDisposeиCancelсоответственно. Вот пример:
linkedTokenSource.Dispose();
cts1.Cancel();
В этой статье мы рассмотрели различные методы использования CancellationToken.LinkedTokenSource в C#. Используя эти методы, вы можете эффективно управлять токенами отмены в сложных сценариях. Понимание и использование CancellationToken.LinkedTokenSource значительно расширит ваши возможности структурированно и организованно обрабатывать отмены.