none
wp7 bitmapimage 导致 内存泄露OutOfMemoryException 求救 RRS feed

  • 问题

  •   BitmapImage bitmap = new BitmapImage();
                            bitmap.SetSource(aStream);
                            bitmap.CreateOptions = BitmapCreateOptions.DelayCreation;
                            entry.ForegroundPic = bitmap;

    这段代码主要是滑动切换图片时候设置图片用的

    开始使用的时候没事,


    切换几十张图片的时候就开始崩溃了。    bitmap.SetSource(aStream); 报错 OutOfMemoryException

    而且catch不到错误,调了一天才发现位置。而且屏幕左上角监视的数字内存一直是8M左右,没有很多。

    求教各位大大这是怎么了?急求。。。。  

    ps:使用wp性能分析的时候发现内存使用率为全蓝。 200M左右,为什么监视数字显示没有那么多呢?

    2012年4月11日 8:04

答案

  • 你好,请问你是在页面上不断地加载显示BitmapImage么?

    如果是这样话,加载过多照片确实会占用很多的内存,有两个建议

    一是看你是否需要总是显示大图,如果不需要的话可以考虑先加载显示小图,可以调用SaveJpg的方法将大图压缩减少所占用内存

    http://msdn.microsoft.com/zh-cn/library/ff769549(v=vs.92).aspx

    二是如果不是所有的图片都要同事现实的话,可以考虑把不需要显示的图片Stream close掉。

    • 已标记为答案 Shi Ding 2012年4月25日 14:38
    2012年4月12日 7:56