我被问到一个关于事件的非常有趣的问题。我认为答案是否定的,但我很好奇是否有我不知道的方法。 在下面的代码示例中,我能否从引用类B或其方法X中删除订阅? Class1 A = new Class1(); Class2 B = new Class2(); A.DoneIt += B.X; 这段代码是关于it技术的内容,意思是在没有访问类A(也不通过类A的反射)的情况下执行A.DoneIt -= B.X;。
MulticastDelegate
,而是使用SubscriberList
类型;它调用返回bool
的函数并从列表中删除任何返回true
的函数)。请注意,即使OneDelegate += AnotherDelegate
不是线程安全的,SubscriberList
也可以提供线程安全的订阅和取消订阅消息。 - supercat