读取/写入文件时出现IO异常
本文关键字:IO 异常 文件 读取 | 更新日期: 2023-09-27 18:28:30
我正在使用一个XML文件来存储值。可以通过多种方法访问此XML文件。
Private object lockObject = new object()
Method1
{
Lock(this.lockObject)
{
MyCommonMethod()
}
}
Timer.ElapseEvent
{
Lock(this.lockObject)
{
MyCommonMethod()
}
}
MyCommonMethod()
{
// Read/Write to XML file.
var element = XElement.Load(path);
// some operations
element.save(path)
}
这个类被许多其他类使用,有时它会引发System.IO异常,该文件已经被其他进程使用,尽管我使用了锁语句
请引导。
如果您需要在类的多个实例之间保持安全,则需要使您的私有锁定变量static
。
private static object lockObject = new object();
删除所有对Lock的调用,并尝试像这样更改代码:
private void MyCommonMethod()
{
lock (this.lockObject)
{
var element = XElement.Load(path);
// some operations
element.save(path);
}
}