如果我使用eventHandler訂閱同一事件三次,是否有問題? 例如C#事件訂閱和取消訂閱重複項
a.SomethingChanged += new EventHandler(ChangeHandler);
a.SomethingChanged += new EventHandler(ChangeHandler);
a.SomethingChanged += new EventHandler(ChangeHandler);
這是否會導致ChangeHandler被調用3次而不是1?處理這個問題的最佳方法是什麼?
請注意,這些冗餘不在一起,而是代碼路徑的不同區域。
同樣,退訂未登記的活動是否存在問題? 例如
a.SomethingChanged -= new EventHandler(ChangeHandler); //ChangeHandler was never registered
看到這個問題:http://stackoverflow.com/questions/817592/avoid-duplicate-event-subscriptions-in-c-sharp,基本上,是的,但你可以避免它。 – Sean
嘗試一下,看看會發生什麼!然而,我很好奇,當每一個結果都包含相同的結果時,具有排他執行路徑背後的想法是什麼? –
所以基本上沒有取消訂閱( - =)的副作用,如果它尚未註冊。正確? – user236215