我试图弄清楚如何释放 WriteableBitmap 内存。
在下一段代码中,我用来自“BigImage”(3600 * 4800 px,仅用于测试)的大量数据填充 WriteableBitmap 的后缓冲区如果我注释位图和图像等于 null 的行,则内存它没有发布,应用程序消耗约 230 MB,即使不再使用图像和位图!
正如您在代码末尾看到的那样,必须调用 GC.Collect() 来释放内存。
所以问题是,释放 WriteableBitmap 对象使用的内存的正确方法是什么?GC.Collect() 是唯一的方法吗?
任何帮助都会很棒。
PS。对不起,我的英语不好。
private void buttonTest_Click(object sender, RoutedEventArgs e)
{
Image image = new Image();
image.Source = new BitmapImage(new Uri("BigImage"));
WriteableBitmap bitmap = new WriteableBitmap(
(BitmapSource)image.Source);
bitmap.Lock();
// Bitmap processing
bitmap.Unlock();
image = null;
bitmap = null;
GC.Collect();
}