[C#中的FileStream]为什么每次想访问一个文件,都提示被另外的线程占用?

bianxinhuan 2013-09-10 11:48:01
我如下这样写,每次都会抛出被占用的异常,其实这个文件只有我自己的这个方法访问,用来记录日志的,不定时会写入记录.也尝试过不用using的方式,把流close()和dispose().有解决办法吗,各位前辈!
 using (FileStream missedXmlStream = new FileStream(missedPath, FileMode.Open, FileAccess.Write, FileShare.ReadWrite))
{
XDocument missedXml = XDocument.Load(missedPath);
var root = missedXml.Root;
var secondNode = root.Element(type);
var page = new XElement("page", new XAttribute("category", category), new XAttribute("Url", url));
secondNode.Add(page);
missedXml.Save(missedXmlStream);
missedXmlStream.Flush();
}
真的,关于IO,多线程这些操作真的充满无力感,是因为我不明白它内部原理吗?
...全文
531 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
silwol 2013-09-25
  • 打赏
  • 举报
回复
这样试试?
                XDocument missedXml = XDocument.Load(missedPath);
                var root = missedXml.Root;
                var secondNode = root.Element(type);
                var page = new XElement("page", new XAttribute("category", category), new XAttribute("Url", url));
                secondNode.Add(page);
 using (FileStream missedXmlStream = new FileStream(missedPath, FileMode.Open, FileAccess.Write, FileShare.ReadWrite))
            {
                missedXml.Save(missedXmlStream);
                missedXmlStream.Flush();
            }
快乐的小二兔 2013-09-25
  • 打赏
  • 举报
回复
引用 1 楼 yuwenge 的回复:
熟读 计算机组成原理
背诵 clr via c# 全书
卧_槽 2013-09-25
  • 打赏
  • 举报
回复
引用 2 楼 jiaoshiyao 的回复:
[quote=引用 1 楼 yuwenge 的回复:] 熟读 计算机组成原理
你明显是在坑人[/quote] 居然被发现了
火拼阿三 2013-09-25
  • 打赏
  • 举报
回复
引用 2 楼 jiaoshiyao 的回复:
[quote=引用 1 楼 yuwenge 的回复:] 熟读 计算机组成原理
你明显是在坑人[/quote]
jiaoshiyao 2013-09-25
  • 打赏
  • 举报
回复
引用 5 楼 id270 的回复:
[quote=引用 1 楼 yuwenge 的回复:] 熟读 计算机组成原理
背诵 clr via c# 全书[/quote]遇此问题需挥刀自宫后围大街跑三圈方才能解答
jiaoshiyao 2013-09-24
  • 打赏
  • 举报
回复
引用 1 楼 yuwenge 的回复:
熟读 计算机组成原理
你明显是在坑人
卧_槽 2013-09-11
  • 打赏
  • 举报
回复
熟读 计算机组成原理

7,774

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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