WPF的BitmapImage的文件无法释放及内存泄露的问题
相信用过WPF的BitmapImage的,都在用类似这样的代码来解决文件无法删除的问题!
如果看看msdn上简单的描述,可以看到这样的说明:
如果 StreamSource 和 UriSource 均设置,则忽略 StreamSource 值。
如果要在创建 BitmapImage 后关闭流,请将 CacheOption 属性设置为 BitmapCacheOption.OnLoad。 默认 OnDemand 缓存选项保留对流的访问,直至需要位图并且垃圾回收器执行清理为止。
static class AppHelper
{
public static BitmapImage GetBitmapImage(string path)
{
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
image.CacheOption = BitmapCacheOption.OnLoad;
bitmap.StreamSource = new MemoryStream(File.ReadAllBytes(path));
bitmap.EndInit();
bitmap.Freeze();
return bitmap;
}
}