在LongListSelector中回收图像小部件-内存泄漏

本文关键字:内存 泄漏 小部 图像 LongListSelector | 更新日期: 2023-09-27 18:12:16

我目前正在开发一个Windows Phone 8应用程序,我有几个关于LongListSelector项目回收的问题。

在我的主页上,我有两个50项的列表。每个条目由:

组成
  • 1个从资源中加载的临时图像;
  • 从网上检索到的1张图片;
  • 1文本。

当我显示这2个列表,应用程序崩溃,因为OutOfMemoryException。我的应用程序需要超过150Mo。

我的第一个问题是关于临时图像。实现此功能的最佳方法是什么?目前,我在同一个地方有2个图像,当"真实"图像加载时,它显示在临时图像上,而不是在的地方。结果是我有2个图像控件。我想这不是改善性能和内存泄漏的最好方法。

第二个问题是关于回收的。如何只加载正在显示的图像?我尝试过一些事情,比如把图像控件包装到userControl中,并将图像控件源设置为null进入Unload事件,但是当我滚动到第一个项目到最后一个而不是从第一个滚动到最后一个时,事件方法只调用一次…所以内存没有被释放…

我正在使用MVVM模式来绑定图像控件的源。

你有一个适当的例子,显示如何正确地管理包含图像的项目的LongListSelector吗?

提前感谢你的提示!

在LongListSelector中回收图像小部件-内存泄漏

一些建议。对于带有占位符的图像控件,请尝试使用Coding4Fun工具包中的SuperImage控件!如何使用它的详细信息在这里

其次,清除图像内存使用,这里有一个很好的解决方案,KooKiz给出,基本上它会清除已使用的内存,当图像卸载。