WPF Image Source怎么释放

本人QQ-554433626 2018-12-06 01:57:23
图片加载代码:

object imgControl = control.FindName("Image1");
Image img = imgControl as Image;
if (img != null)
{
if (imageBase == null)
{
img.Source = null;
img.Stretch = Stretch.Uniform;
}
else
{
img.Source = null;
byte[] imgByte = Convert.FromBase64String(imageBase);
BitmapImage bitImage = new BitmapImage();
bitImage.BeginInit();
bitImage.CacheOption = BitmapCacheOption.OnLoad;
using (MemoryStream ms1 = new MemoryStream(imgByte))
{
bitImage.StreamSource = ms1;
bitImage.EndInit();
//bitImage.Freeze();
ms1.Dispose();
ms1.Close();
}
img.Source = bitImage;
img.Stretch = Stretch.Uniform;
}
}


释放代码:

object imgControl = control.FindName("Image1");
Image imgImage = imgControl as Image;
if (imgImage != null)
{
imgImage.Source = null;
}


现在的情况是有多个图片层(不上限)进行翻页浏览。现在我加载多少图片释放多少图片,但是其他图层的资源没有得到有效的释放导致内存不断提高。
该如何正确的释放图片内存?
...全文
973 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
using一下解决该问题
本人QQ-554433626 2018-12-07
  • 打赏
  • 举报
回复
引用 3 楼 xomix 的回复:
using一下解决该问题
我信你个鬼 你这个糟老头子坏得很
本人QQ-554433626 2018-12-06
  • 打赏
  • 举报
回复
现在我每次翻页把当前界面左右10张以外的图层ItemsControl删掉,内存得到了稳定。 同样清理了内存。但想请问有没有直接对图片内存删除的,而不是通过删掉图层来清理图层里的图片内存!
本人QQ-554433626 2018-12-06
  • 打赏
  • 举报
回复
????????

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧