即使我有足够的可用内存,如何阻止弱引用丢失

时间:2014-09-26 10:50:48

标签: c# weak-references

我有一个带有许多wpf控件的应用程序,但一次只能看到少数几个。 当用户滚动项目时,我们会在每个视图模型的弱引用中“缓存”图像。

即使工作集是260MB并且存在大量RAM,弱引用引用的对象也是垃圾收集的。进程以x86运行。

为什么GC如此激进有什么理由?

这当然是临时解决方案,我们正在开发自定义缓存服务,但我对此行为感到惊讶。

1 个答案:

答案 0 :(得分:0)

感谢Yuval的评论。我已经做了一个答案,帮助其他人相信弱引用可以用于缓存,即使有足够的可用内存。

不幸的是,即使你的应用程序远远没有内存限制,弱引用也会被垃圾收集。似乎弱引用总是在第0代扫描中收集。