有两种方法(我知道)在C#中导致无意的内存泄漏:
IDisposable
我真的不明白第二点.如果源对象的生命周期比侦听器长,并且当没有其他引用时,侦听器不再需要事件,则使用普通的.NET事件会导致内存泄漏:源对象将侦听器对象保存在内存中应该是垃圾收集.
你能用C#中的代码解释事件如何导致内存泄漏,以及如何使用弱引用和没有弱引用来编写代码来解决它?
.net c# events weak-references
.net ×1
c# ×1
events ×1
weak-references ×1