C# 最佳同步策略

C# 最佳同步策略,c#,C#,我有一个简单的应用程序,每次点击按钮都会写入xml文件。完成后,我很快就阅读了Xml文件(如下面几行所示,中间没有方法) 当应用程序第一次运行时,xml文件被写入fine或从fine读取,但是如果我再次按下按钮,我会得到一个“文件正被另一个进程使用”。我正在对我的流执行整个刷新、关闭和处置操作,并打算使用ProcessMon检查哪个进程保存文件 从程序上讲,避免这个问题的最佳策略是什么 谢谢请确保文件已写入,然后使用刚写入文件的内存数据。 您无需再次阅读。最简单的解决方案是锁定访问xml文件的所

我有一个简单的应用程序,每次点击按钮都会写入xml文件。完成后,我很快就阅读了Xml文件(如下面几行所示,中间没有方法)

当应用程序第一次运行时,xml文件被写入fine或从fine读取,但是如果我再次按下按钮,我会得到一个“文件正被另一个进程使用”。我正在对我的流执行整个刷新、关闭和处置操作,并打算使用ProcessMon检查哪个进程保存文件

从程序上讲,避免这个问题的最佳策略是什么


谢谢

请确保文件已写入,然后使用刚写入文件的内存数据。

您无需再次阅读。

最简单的解决方案是锁定访问xml文件的所有代码

i、 e


我想我已经在别处回答了这个问题。在关闭之前调用Flush()方法,并使用单独的FileStream对象。我认为FileStream对象就是问题所在,这就是为什么在完成编写时刷新()总是很好的原因

不过,对于读者来说,并没有等效的方法。这就是为什么我最终使用文件流对象

鲁迪多格

object locker = new Object();

....

lock (locker)
{
     //write xml file
}