我的控制之所以能保持活力,是因为它必须服从命令。我怎样才能打破这个参考?这导致我的应用程序中出现严重的内存泄漏。该控件位于 DataTemplate 内部,因此我无法直接访问它。
这是我的 ANTS 内存配置文件:
我到底该如何断开这种连接?
虽然我合并了WeakEventListener
,我发现我的问题出在我用来包装图像的控件上。我把它连接到DownloadProgress
, ImageOpened
, and ImageFailed
事件并且从未解开它们。我的想法是我的代码中没有其他内容触及BitmapImage
对象,以便控件将对其进行垃圾收集。但事实并非如此。这BitmapImage
对象由 Microsoft 代码深处名为“ManagedPeerTable.PeggedManagedPeersWithRefs”的静态成员(因此是 GC 根)引用。它是如此之深,以至于谷歌搜索只返回了五个结果。现在我想会有六个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)