我在此特定代码中获得 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
,因为我必须返回图像。
这是什么解决方法?在这里帮助我。
答案 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);
}
}