读/写文件时出现IO异常

时间:2012-03-22 02:48:16

标签: c#

我正在使用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异常,该文件已经被其他进程使用了​​,虽然我已经使用了lock语句

请指导。

2 个答案:

答案 0 :(得分:2)

如果您需要在多个类的实例中保持安全,则需要创建私有锁定变量static

private static object lockObject = new object();

答案 1 :(得分:0)

删除对Lock的所有调用并尝试更改您的代码:

    private void MyCommonMethod()
    {
        lock (this.lockObject)
        {
            var element = XElement.Load(path);
            // some operations
            element.save(path);
        }
    }