C# BitmapImage内存不足
我正在尝试开发一个应用程序,用Visual Studio 2013拍摄和打印照片 该应用程序分为2个项目: 首先是客户端,它拍摄4张照片并发送其路径文件 第二个是服务器。当有连接时,他会显示4张照片。 然后,用户可以选择一个框架,数量和打印他的照片 装载有问题:C# BitmapImage内存不足,c#,wpf,memory-leaks,bitmapimage,C#,Wpf,Memory Leaks,Bitmapimage,我正在尝试开发一个应用程序,用Visual Studio 2013拍摄和打印照片 该应用程序分为2个项目: 首先是客户端,它拍摄4张照片并发送其路径文件 第二个是服务器。当有连接时,他会显示4张照片。 然后,用户可以选择一个框架,数量和打印他的照片 装载有问题: BitmapImage _img1 = new BitmapImage(); _img1.BeginInit(); _img1.CacheOption = Bitm
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
如果不显示照片,应用程序是稳定的
我试过使用位图和BitmapImage,gdi32.dll的GC.Collect和DeleteObject,问题是一样的
有没有办法处置所有资源
对不起,我的英语不好您正在内存中缓存整个位图-BitmapCacheOption.OnLoad。尝试使用None或OnDemand而不是OnLoad。您多久创建一次这些图像?您是否积极地处理它们?不确定它是否会影响您的问题,但在您键入的_img3.CacheOption=BitmapCacheOption.OnLoad的_img4部分的代码中;还有,你在处理位图吗?否则,使用的内存量将增加