BitmapImage 内存不足
Out of Memory with BitmapImage
我正在尝试开发一个应用程序来使用 Visual Studio 2013 拍摄和打印照片。
该应用分为 2 个项目:
首先是客户端,它拍了4张照片并发送了它们的路径文件。
其次是服务器。当有连接时,他会显示 4 张照片。
然后用户可以选择相框、数量并打印他的照片。
加载有问题:
BitmapImage _img1 = new BitmapImage();
_img1.BeginInit();
_img1.CacheOption = BitmapCacheOption.OnLoad;
_img1.UriSource = new Uri(_images[0]);
_img1.EndInit();
img1.Source = _img1;
BitmapImage _img2 = new BitmapImage();
_img2.BeginInit();
_img2.CacheOption = BitmapCacheOption.OnLoad;
_img2.UriSource = new Uri(_images[1]);
_img2.EndInit();
img2.Source = _img2;
BitmapImage _img3 = new BitmapImage();
_img3.BeginInit();
_img3.CacheOption = BitmapCacheOption.OnLoad;
_img3.UriSource = new Uri(_images[2]);
_img3.EndInit();
img3.Source = _img3;
BitmapImage _img4 = new BitmapImage();
_img4.BeginInit();
_img3.CacheOption = BitmapCacheOption.OnLoad;
_img4.UriSource = new Uri(_images[3]);
_img4.EndInit();
img4.Source = _img4;
我试过 "BitmapCacheOption.OnDemand"。程序启动时,内存消耗为3Go。几分钟后,它增加到 6Go。
当抛出outofmemoryexception时,就到了PresentationCore.dll
我查看了消耗,在程序的每个循环中,消耗增加了 0,4Go。
不显示照片,应用稳定。
我试过Bitmap和BitmapImage,GC.Collect和[=44=的DeleteObject],问题是一样的。
有没有办法处理所有资源?
对不起我的英语
您正在内存中缓存整个位图 - BitmapCacheOption.OnLoad。尝试使用 None 或 OnDemand 而不是 OnLoad。
我正在尝试开发一个应用程序来使用 Visual Studio 2013 拍摄和打印照片。
该应用分为 2 个项目:
首先是客户端,它拍了4张照片并发送了它们的路径文件。
其次是服务器。当有连接时,他会显示 4 张照片。 然后用户可以选择相框、数量并打印他的照片。
加载有问题:
BitmapImage _img1 = new BitmapImage();
_img1.BeginInit();
_img1.CacheOption = BitmapCacheOption.OnLoad;
_img1.UriSource = new Uri(_images[0]);
_img1.EndInit();
img1.Source = _img1;
BitmapImage _img2 = new BitmapImage();
_img2.BeginInit();
_img2.CacheOption = BitmapCacheOption.OnLoad;
_img2.UriSource = new Uri(_images[1]);
_img2.EndInit();
img2.Source = _img2;
BitmapImage _img3 = new BitmapImage();
_img3.BeginInit();
_img3.CacheOption = BitmapCacheOption.OnLoad;
_img3.UriSource = new Uri(_images[2]);
_img3.EndInit();
img3.Source = _img3;
BitmapImage _img4 = new BitmapImage();
_img4.BeginInit();
_img3.CacheOption = BitmapCacheOption.OnLoad;
_img4.UriSource = new Uri(_images[3]);
_img4.EndInit();
img4.Source = _img4;
我试过 "BitmapCacheOption.OnDemand"。程序启动时,内存消耗为3Go。几分钟后,它增加到 6Go。
当抛出outofmemoryexception时,就到了PresentationCore.dll
我查看了消耗,在程序的每个循环中,消耗增加了 0,4Go。
不显示照片,应用稳定。
我试过Bitmap和BitmapImage,GC.Collect和[=44=的DeleteObject],问题是一样的。
有没有办法处理所有资源?
对不起我的英语
您正在内存中缓存整个位图 - BitmapCacheOption.OnLoad。尝试使用 None 或 OnDemand 而不是 OnLoad。