gpt4 book ai didi

c# - 将 BitmapImage 设置为 null 时内存未释放

转载 作者:太空宇宙 更新时间:2023-11-03 16:24:27 24 4
gpt4 key购买 nike

我有一个对象集合,每个对象都包含一个 BitmapImage。我将此集合绑定(bind)到 FlipView。当用户在 FlipView 中翻页时,所选对象的 BitmapInmage 从 ApplicationData 加载,我将前一个对象的 BitmapImage 设置为 null 以释放内存。问题是,内存永远不会释放,应用程序在翻转一段时间后崩溃。当我查看集合时,只有实际项目设置了 BitmapImage,所有其他项目都将其设置为 null。那么如何解除内存呢?

我加载图片的方式:

StorageFile s = await ApplicationData.Current.LocalFolder.GetFileAsync(localFilename);
BitmapImage bitmapImage = new BitmapImage();
using (var stream = await s.OpenAsync(FileAccessMode.Read))
{
bitmapImage.SetSource(stream);
}
return bitmapImage;

编辑:我认为问题可能出在我加载图像的方式上,我猜文件流没有被释放

最佳答案

我遇到了与 Windows Phone 7 应用程序类似的问题。

对我有用的一个技巧是从父元素中删除图像。

grid1.Children.Remove(image1);
image1 = null;

不过我不确定这对您的情况是否有帮助。

有关此问题的更多详细信息来 self 的 blog post .

关于c# - 将 BitmapImage 设置为 null 时内存未释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12988427/

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