我开发了一个WPF应用程序,使用BitmapDecoder保存图像。在保存图像时,我得到了


  内存不足,无法完成操作异常。


代码看起来像这样:

BitmapDecoder imgDecoder = BitmapDecoder.Create(mem,
BitmapCreateOptions.IgnoreColorProfile, BitmapCacheOption.None);


我认为BitmapDecoder对象可能是导致该异常的原因。我该如何处置物体?

最佳答案

我遇到了同样的问题。我有一个应用程序使用BitmapDecoder加载了数千张图像,并且遇到了内存问题。我必须创建一个包装类ImageFileHandler来处理与BitmapDecoder的所有交互,然后将BitmapDecoder的实例存储在WeakReference中。因此,如果操作系统需要内存,我的弱引用将放弃BitmapDecoder,然后每当我的ImageFileHandler需要它时,如有必要,它将创建一个新的内存。

关于c# - 如何在WPF应用程序中处置BitmapDecoder对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/949022/

10-14 18:13