从隔离存储加载图像时出现内存不足异常

时间:2013-03-29 09:09:55

标签: c# windows-phone-7 out-of-memory bitmapimage

我在此特定代码中获得 OutofMemoryException

public BitmapImage GetImage(int pageNo)
        {
            if (!this._isLoaded)
            {
                this.Load();
            }
            using (IsolatedStorageFileStream stream = IsolatedStorageFile.GetUserStoreForApplication().OpenFile(this.FileNames[pageNo], FileMode.Open, FileAccess.Read))
            {
                BitmapImage image = new BitmapImage();
                image.SetSource(stream);            

                return image;

            }
        }

内存不足异常发生在image.SetSource(stream)。我不能将uri设置为null,因为我必须返回图像。

这是什么解决方法?在这里帮助我。

1 个答案:

答案 0 :(得分:3)

我有这个位图图像列表。

 private List<BitmapImage> _images = new List<BitmapImage>();

我离开页面时清除了uri。

 protected override void OnNavigatedFrom(NavigationEventArgs e)
        {
            base.OnNavigatedFrom(e);
            this.DataContext = null;
            foreach (var obj in this._images)
            {
                if (obj != null)
                {
                    obj.ClearValue(BitmapImage.UriSourceProperty);
                }

            }