相关疑难解决方法(0)

事件处理程序是否阻止垃圾收集发生?

如果我有以下代码:

MyClass pClass = new MyClass();
pClass.MyEvent += MyFunction;
pClass = null;
Run Code Online (Sandbox Code Playgroud)

pClass会被垃圾收集吗?或者它会在它们发生的时候仍然停止发射?我是否需要执行以下操作才能进行垃圾回收?

MyClass pClass = new MyClass();
pClass.MyEvent += MyFunction;
pClass.MyEvent -= MyFunction;
pClass = null;
Run Code Online (Sandbox Code Playgroud)

.net c# garbage-collection event-handling

178
推荐指数
3
解决办法
3万
查看次数

是否有必要在C#中显式删除事件处理程序

我有一个提供一些活动的课程.该类在全局声明但未在该全局声明上实例化 - 它根据需要在需要它的方法中实例化.

每次在方法中需要该类时,都会对其进行实例化并注册事件处理程序.是否有必要在方法超出范围之前显式删除事件处理程序?

当方法超出范围时,类的实例也是如此.是否在超出范围的情况下向该实例注册的事件处理程序是否存在内存占用意义?(我想知道事件处理程序是否使GC看不到类实例不再被引用.)

c# garbage-collection event-handling

115
推荐指数
2
解决办法
4万
查看次数

标签 统计

c# ×2

event-handling ×2

garbage-collection ×2

.net ×1