如果我使用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