我正在尝试找出如何释放WriteableBitmap的内存。
在下一段代码中,我使用“BigImage”(3600 * 4800像素,仅用于测试)的大量数据填充WriteableBitmap的后台缓冲区。 如果我注释掉将位图和图像赋值为null的行,则其内存不会被释放,即使不再使用Image和bitmap!
正如您在代码末尾所看到的,需要调用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();
}