Безопасно ли утилизировать CancellationTokenSource при наличии неоплаченных токенов?
Если у меня есть CancellationTokens, которые ранее были возвращены CancellationTokenSource.Token { get;} можно ли безопасно вызвать CancellationTokenSource Dispose()? (Я беспокоюсь, что это аннулирует отмену токенов.)
Если это небезопасно, могу ли я просто положиться на финализатор CancellationTokenSource?
1 ответ:
Это не безопасно (документально подтверждено), но и не обязательно. Вы можете хранить маркер и безопасно использовать его даже после удаления
CancellationTokenSource
. Просто больше не звониCancellationTokenSource.Token
. Используйте маркер, который вы получили перед утилизацией.Нужно ли вам вообще утилизировать
CancellationTokenSource
- это другой вопрос. Есть разные случаи и разные мнения. Есть нить об этом, но ответы сомнительны. Используйте с осторожностью.