我有一个使用MEF加载某些对话框的WPF应用程序。 我注意到一段时间后,它开始建立越来越多的WeakReferences,这些参考似乎没有被释放。该测试方案具有一个内存压力项,可建立〜3GB的内存。该对话框调用DataService并重新加载DataGrid的内容。
为什么没有释放如此大量的WeakReferences是什么原因? 我看不到保留任何特定于应用程序的引用。 在内存分析会话的图片下面,带有最后添加的项目的视图。明显增加了WeakReferences的数量。
谢谢。
更新:
我在远程计算机上使用的探查器表明,这种积累主要是由新的WeakReference
引起的。 WaitCallback
可能是因为我做了一个循环来详细说明问题并每秒刷新一次。否则对象增量是干净的。