Dot-Net
註冊 CancellationToken.None 是否安全?
為什麼以下甚至是合法的?
CancellationToken.None.Register(delegate { });例如,為什麼
Register不在這裡拋出異常?是因為以上內容相當於NOP嗎?**背景:**問這個問題的原因是要了解在涉及註冊時是否需要對接受 a 的方法
CancellationToken進行防禦性編碼CancellationToken.None。
CancellationToken.None不是空引用,而是一個空的取消標記。因此,它確實有一個實例。註冊永遠不會觸發,因為源永遠不會註冊為被取消,但它會“正確地”通過。
但是,除非您小心處理正確返回的CancellationTokenRegistration,否則我仍然會對此進行檢查和編碼。
編輯:
CancellationToken.None經進一步調查,如果您對CancellationTokenRegistration. 這不會保留對您的對像或委託的引用,也不會形成洩漏,因此出於實際目的,它是無操作的。這應該是安全的,並且不應該要求您最終避免採取防禦措施。