BitmapImage 内存不足

Out of Memory with BitmapImage

我正在尝试开发一个应用程序来使用 Visual Studio 2013 拍摄和打印照片。

该应用分为 2 个项目:

加载有问题:

            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。