我正在使用XML文件来存储值。这个XML文件可以通过多种方法访问。读取/写入文件时发生IO异常
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,该文件已经被其他的过程,虽然我已经使用了lock语句
请指导。
是否有使用该文件的其他进程? – 2012-03-22 02:51:46
这将防止同时从同一对象多次调用MyCommonMethod,但是如果多个对象同时具有相同的'路径',则可能会失败。你确定每个'path'只有一个对象吗? – porges 2012-03-22 02:52:19
'//某些操作'代码是否会导致MyCommonMethod再次被调用(可能是间接的)? – phoog 2012-03-22 02:53:05