假设我们有两个对象,Broadcaster和Listener。 Broadcaster有一个名为Broadcast的事件,Listener已订阅该事件。 如果Listener在不取消订阅Broadcast事件的情况下被处理,由于包含它的事件委托引用,它将保留在内存中。
我好奇的是,如果Broadcaster在Listener取消订阅或Broadcaster设置Broadcast = null之前被处理,Broadcaster是否会被保留在内存中?
除了一个博主认为不设置事件为null将使源代码保留在内存中(在这里找到),我没有找到任何硬性答案来回答这个问题。
我想听听为什么或为什么不这样做的解释。
谢谢。
更新: 论坛线程,在此开发人员指出事件应设置为null,但Jon Skeet表示没有必要,但没有详细说明。
我好奇的是,如果Broadcaster在Listener取消订阅或Broadcaster设置Broadcast = null之前被处理,Broadcaster是否会被保留在内存中?
除了一个博主认为不设置事件为null将使源代码保留在内存中(在这里找到),我没有找到任何硬性答案来回答这个问题。
我想听听为什么或为什么不这样做的解释。
谢谢。
更新: 论坛线程,在此开发人员指出事件应设置为null,但Jon Skeet表示没有必要,但没有详细说明。