3

考虑以下代码引发异常“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,我不确定为什么会发生内存泄漏(我的原始代码要复杂得多,我对此进行了跟踪)。

4

1 回答 1

2

内存泄漏问题源于 BitmapSource 的内存泄漏。谷歌搜索会发现更好的结果:)

表示一旦使用它,就应该将 writableBitMap 分配给“null”。我会说在将其分配给 null 之前尝试使用 Freeze() 方法,然后尝试。如果在那之后,如果您发现内存泄漏仍然存在,请通过将缓存选项(CacheOption) 设置为 BitmapCacheOption.OnLoad 来禁用它。

于 2015-08-30T17:34:15.970 回答