gpt4 book ai didi

WPF WriteableBitmap 内存泄漏?

转载 作者:行者123 更新时间:2023-12-04 15:28:16 26 4
gpt4 key购买 nike

我想弄清楚如何释放 WriteableBitmap 内存。

在下一段代码中,我用来自“BigImage”(3600 * 4800 px,仅用于测试)的大量数据填充 WriteableBitmap 的后台缓冲区
如果我注释 bitmap 和 image 等于 null 的行,它不会释放内存并且应用程序消耗 ~230 MB,即使
当图像和位图不再使用时!

正如您在代码末尾所看到的,有必要调用 GC.Collect() 来释放内存。

所以问题是,释放 WriteableBitmap 对象使用的内存的正确方法是什么? GC.Collect() 是唯一的方法吗?

任何帮助都会很棒。

附注。对不起,我的英语不好。

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();
}

最佳答案

您是否在使用 .Net 3.5 SP1 的 Windows XP 上运行测试?
如果是这样,那么这是一个已知问题,将在 4.0 中修复。


http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/5d88cdf1-e992-4ad4-8f56-b5dbf92dcf1c

关于WPF WriteableBitmap 内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1334463/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com