在应用程序的过程中定期弹出异常:System.OutOfMemoryException
内存溢出有什么问题?
谢谢!
private void ShowImage(IsolatedStorageFile appStorage, string Path)
{
// Читаем изображения из изолированного хранилища
using (IsolatedStorageFileStream Stream = appStorage.OpenFile(Path, FileMode.Open))
{
// Формируем элемент Image
Image Img = new Image();
Img.Height = 160;
Img.Width = 250;
Img.Margin = new Thickness(10);
// Читаем поток и заносим результат в WriteableBitmap
>>> WriteableBitmap wb = PictureDecoder.DecodeJpeg(Stream); <<<// Exception: System.OutOfMemoryException
Img.Source = wb;
Stream.Close();
// Выводим изображения из директории Up на страницу
PhotoPanel.Children.Add(Img);
// Чистим мусор
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
}
}
答案 0 :(得分:1)
您可以使用DecodeJpeg的重载限制处理的大小,如下所示:
WriteableBitmap wb = PictureDecoder.DecodeJpeg(Stream, Img.Width , Img.Height );