随笔 - 52  文章 - 0  评论 - 31  阅读 - 18万 
imageEditImage是一个Image控件,在后台代码中我想给它指定Source的属性。我先如下方式进行:
BitmapImage image = new BitmapImage(new Uri(strImagePath, UriKind.Absolute));
imageEditImage.Source = image;
strImagePath是图片的绝对路径。

在另一处代码中我想把strImagePath指定的图片删掉,操作如下:
if (System.IO.File.Exists(strImagePath))
 {
    System.IO.File.Delete(strImagePath);
 }
但是删除操作报错,愿意是程序在使用图片文件。

解决方法如下:
   BitmapImage image = new BitmapImage();
   m_ImageStream = new FileStream(strImagePath, FileMode.Open);
   image.BeginInit();
   image.StreamSource = m_ImageStream;
   image.EndInit();
   imageEditImage.Source = image;
其中m_ImageStream是一个全局的Stream变量,在删除操作前关闭这个变量就不会再出错了。代码改动如下:
if (m_ImageStream != null)
{
    m_ImageStream.Close();
    m_ImageStream.Dispose();
}

if (System.IO.File.Exists(strImagePath))
 {
    System.IO.File.Delete(strImagePath);
 }
posted on   pdfw  阅读(35086)  评论(2编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示