Освоение CancellationToken.LinkedTokenSource на C#: подробное руководство

CancellationToken.LinkedTokenSource — это мощная функция C#, позволяющая эффективно управлять токенами отмены. В этой статье блога мы рассмотрим различные методы и предоставим примеры кода, которые помогут вам понять и эффективно использовать CancellationToken.LinkedTokenSource.

Методы и примеры:

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

В этой статье мы рассмотрели различные методы использования CancellationToken.LinkedTokenSource в C#. Используя эти методы, вы можете эффективно управлять токенами отмены в сложных сценариях. Понимание и использование CancellationToken.LinkedTokenSource значительно расширит ваши возможности структурированно и организованно обрабатывать отмены.