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

时间:2014-07-09 17:58:26

标签: c# image windows-phone-8 memory-leaks longlistselector

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

我是我的主页,我有2个50个项目的列表。每个项目由以下内容组成:

  • 从Assets加载的1张临时图片;
  • 从网络上检索到1张图片;
  • 1文。

当我显示这两个列表时,由于OutOfMemoryException,应用程序崩溃。我的应用程序需要的时间超过150Mo。

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

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

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

您是否有一个正确的示例,说明如何正确管理包含图像的项目的LongListSelector?

提前感谢您的提示!

1 个答案:

答案 0 :(得分:0)

一些建议。 对于带占位符的图像控件,请尝试使用SuperImage工具包中的Coding4Fun控件! 如何使用它是detailed here

其次要清除图像内存使用情况,KooKiz given here提出了一个很好的建议解决方案,基本上它会在卸载图像时清除已用内存。

希望这会有所帮助......