windows phone 8:c#系统内存不足异常:从网上加载大量图片

时间:2013-04-03 17:03:04

标签: c# memory windows-phone-8 storage windows-phone

这是我在Windows Phone环境中开发的第一批应用程序之一,所以我基本上都在学习。我有一个带有数据透视控件的应用程序,并且在三个数据透视表项中的每一个上都有一个LongListSelector。当你滚动图像从web加载到longlistselector并且这是无限滚动(因为它只是在它看到你的底部时加载更多)。 但是,在测试中,如果我疯狂滚动以便下载大量图像,我会收到以下错误:

'System.OutOfMemoryException' occurred in System.Windows.ni.dll

因为我每次都加载一些相同的图像,所以我已经实现了PersistentImageCache(Kawagoe.Storage)来缓存图像。

http://kawagoe.codeplex.com/wikipage?title=Storage.PersistentImageCache

当用户向下滚动时,我是否必须以某种方式卸载图像,并在用户向上滚动时重新加载它们? 或清除每个X图像的内存? (我有HTC 8S,因此对于内存较多的手机来说这可能不是问题。)

非常感谢。

1 个答案:

答案 0 :(得分:0)

自从开发wp8以来,请考虑使用longlistselector的网格布局,如下例所示:

http://code.msdn.microsoft.com/wpapps/PhotoHub-Windows-Phone-8-fd7a1093

Afaik他们做了很多高级内存保存技术,比如分页3页内容,懒洋洋地加载项目实现方法和位图缓存的内容。

我没有任何问题,显示出100多个轮胎(臭名昭着的记忆选择器)

奖金提示: 您可以通过设置较低的maximumflickvelocity来控制滚动速度,这样您就有更多的时间来完成您需要做的事情。