【发布时间】:2010-09-22 19:58:59
【问题描述】:
如果我有以下代码:
MyClass pClass = new MyClass();
pClass.MyEvent += MyFunction;
pClass = null;
pClass 会被垃圾回收吗?或者它是否会在事件发生时仍然触发它的事件?为了允许垃圾收集,我需要执行以下操作吗?
MyClass pClass = new MyClass();
pClass.MyEvent += MyFunction;
pClass.MyEvent -= MyFunction;
pClass = null;
【问题讨论】:
-
我将暂时向对此问题感兴趣的读者建议,熟悉轻量级事件/弱事件模式可能是值得的,它们不会阻止垃圾收集的发生。这个主题的一个很好的 SO 引导是 stackoverflow.com/questions/185931/…
-
后人注意:将引用设置为 null 只是通过将引用范围扩展一行来延迟垃圾收集器。 .NET 不是 VB6。
标签: c# .net event-handling garbage-collection