System.OutOfMemory BitmapImage WP8

时间:2013-12-13 15:46:33

标签: windows-phone-8 out-of-memory bitmapimage

当我创建一个bitmapimage列表时出现了OutOfmemory错误...

我应该做什么......?

感谢您的帮助;)

这是我的代码:

     foreach (var bytearray in imageDataBlocksPresta)
            {
                if (bytearray != null)
                {
                    MemoryStream ms;
                    using (ms = new MemoryStream(bytearray, 0, bytearray.Length))
                    {
                        BitmapImage photo = new BitmapImage();
                        photo.DecodePixelHeight = 800;
                        photo.DecodePixelWidth = 624;
                        photo.SetSource(ms);//ERROR

                        listphotoPresta.Add(photo);
                    }
                }

                else//si photo null
                {
                    BitmapImage photo = new BitmapImage();
                    photo.DecodePixelHeight = 800;
                    photo.DecodePixelWidth = 624;
                    photo.UriSource = new Uri("/Images/NoImageIcon.jpg", UriKind.RelativeOrAbsolute);

                    listphotoPresta.Add(photo);

                }

2 个答案:

答案 0 :(得分:2)

尝试将照片设置为null并在添加后调用GC.Collect()。像这样:

listphotoPresta.Add(photo);

photo = null;
GC.Collect();

答案 1 :(得分:0)

  • 不要一直创建NoImageIcon。仅使用一个参考
  • 请勿尝试将所有图像存储在内存中。这是一个移动设备。
  • 限制您的应用程序适用于至少512MB RAM的设备
  • 存储较低的分辨率图片。许多设备上都是800 * 600全屏
  • 按需加载图片
  • 释放图像后立即调用GC