Wpf RadDocking 内存泄漏

Wpf RadDocking memory leak

我正在跟踪与事件处理程序相关的内存泄漏问题,同时我发现每次打开 raddoCking 然后关闭它时,我都会使用大约 500kb 的内存但未释放。 我正在使用 MVVM 模式,据我所知,它与 mvvm 库无关。

当我关闭 RadPane 时,我将它的上下文设置为空,这还不够吗? 谢谢

几点:

  1. 将 RadPane 的上下文设置为 null 是不够的。您应该取消订阅任何持久对象的任何事件订阅,并为所有一次性对象调用 Dispose。

  2. 你是如何衡量记忆力的?它不会在您关闭 RadPane 后立即释放内存。垃圾收集仅在需要时发生。如果你想测试内存使用情况,你应该在这之前调用 GC 收集和终结。

    GC.Collect();

    GC.WaitForPendingFinalizers();

但是,如果您想准确地跟踪内存泄漏,则需要使用适当的分析工具来显示增长的对象及其保留图表。

看看这个 一个好的内存分析器。

您需要调用 RadPane 的 RemoveFromParent() 方法才能对其进行垃圾回收。

请查看这些链接:

http://www.telerik.com/forums/radpanegroup-memory-leak

http://www.telerik.com/forums/radpane-not-garbage-collected-when-closed