【发布时间】:2012-12-09 15:26:31
【问题描述】:
我在参考 MSDN 教程上的弱事件。我了解了基础知识。我正在从事一个非 WPF 项目,我的班级正在公开某些事件。我的问题是,弱事件 完全取代旧的事件模式?每个暴露事件的类都使用它好吗?随意使用弱事件有什么副作用?
【问题讨论】:
-
什么都没有被替换,它只是一个 hack,当事件源对象比事件订阅者对象寿命更长并且订阅者对象对取消订阅事件草率时,你会得到一个漏洞。
-
事件应该总是弱引用...但不幸的是它们不是默认的。 MS 有a class 使用弱引用处理事件,但不幸的是它的语法很糟糕。不过,值得庆幸的是,an event library 为弱事件提供了简单的语法,以及对事件的一些其他改进(例如,对同一事件进行多次发布很简单,消除了不必要的耦合等)