如果我有以下代码:
MyClass pClass = new MyClass();
pClass.MyEvent += MyFunction;
pClass = null;
pClass会被垃圾回收吗?还是会在事件发生时仍在触发事件呢?我是否需要执行以下操作才能进行垃圾回收?
MyClass pClass = new MyClass();
pClass.MyEvent += MyFunction;
pClass.MyEvent -= MyFunction;
pClass = null;
11
我将向对这个问题感兴趣的读者尝试性地建议,可能值得熟悉轻量级事件/弱事件模式,这不会阻止垃圾回收的发生。一个好的SO引导到这个话题stackoverflow.com/questions/185931/...
—
fostandy
后代注意事项:将引用设置为null只是通过将引用范围扩大一行来延迟垃圾回收器。.NET不是VB6。
—
约翰·桑德斯