小编jnv*_*jgt的帖子

事件如何导致C#中的内存泄漏?弱引用如何帮助缓解这种情况?

有两种方法(我知道)在C#中导致无意的内存泄漏:

  1. 不处理实施的资源 IDisposable
  2. 不正确地引用和取消引用事件.

我真的不明白第二点.如果源对象的生命周期比侦听器长,并且当没有其他引用时,侦听器不再需要事件,则使用普通的.NET事件会导致内存泄漏:源对象将侦听器对象保存在内存中应该是垃圾收集.

你能用C#中的代码解释事件如何导致内存泄漏,以及如何使用弱引用和没有弱引用来编写代码来解决它?

.net c# events weak-references

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

标签 统计

.net ×1

c# ×1

events ×1

weak-references ×1