位图内存泄漏

本文关键字:泄漏 内存 位图 | 更新日期: 2023-09-27 18:10:22

考虑以下代码抛出异常'MILERR_WIN32ERROR':

while(true)
            {
                System.Windows.Media.Imaging.WriteableBitmap writableBitMap =
                                    new System.Windows.Media.Imaging.WriteableBitmap(100, 200, 96, 96, System.Windows.Media.PixelFormats.Bgra32, null);
            }

WriteableBitmap不实现IDisposable,我不确定为什么内存泄漏发生在所有(原来的代码我有更复杂,我跟踪它到这个)。

位图内存泄漏

内存泄漏问题源于BitmapSource的内存泄漏。谷歌一下会找到更好的结果:)

这表明你应该在使用writableBitMap后将其赋值为'null'。我会说在将其分配给null之前尝试使用Freeze()方法,然后再尝试。如果在此之后,如果您看到内存泄漏持续存在,通过将其设置为BitmapCacheOption.OnLoad来禁用缓存选项(CacheOption)。