我有一个类,它有一个static List<T>
字段,里面有我所有的对象;每个对象代表一个正在运行的进程及其属性。
在进程完成其工作后,相关对象将从 中删除List<T>
,然后我的 UI 会更新。
从我的列表中删除对象后,我应该将此对象更改null
为释放资源吗?
从列表中删除对象后,该对象仍然存在,但如果没有对该对象进行引用,垃圾收集器将清理它,您不必担心
C# 是垃圾收集的,因此无论哪种方式,内存都会得到处理。
从列表中删除该对象的那一刻,该对象将超出范围并且有资格进行 GC..
在事件方面:
即使该对象具有其他对象订阅的某些事件,它仍然可以用于 GC。
所以,它是一种单向关系
Broadcaster -> Subscribers
如果Broadcaster
超出范围,即使它有订阅者,它也有资格获得 GC。
但Broadcaster
会阻止GCSubscribers