Безопасно ли утилизировать CancellationTokenSource при наличии неоплаченных токенов?


Если у меня есть CancellationTokens, которые ранее были возвращены CancellationTokenSource.Token { get;} можно ли безопасно вызвать CancellationTokenSource Dispose()? (Я беспокоюсь, что это аннулирует отмену токенов.)

Если это небезопасно, могу ли я просто положиться на финализатор CancellationTokenSource?

1 2

1 ответ:

Это не безопасно (документально подтверждено), но и не обязательно. Вы можете хранить маркер и безопасно использовать его даже после удаления CancellationTokenSource. Просто больше не звони CancellationTokenSource.Token. Используйте маркер, который вы получили перед утилизацией.

Нужно ли вам вообще утилизировать CancellationTokenSource - это другой вопрос. Есть разные случаи и разные мнения. Есть нить об этом, но ответы сомнительны. Используйте с осторожностью.