代码:
public static bool WriteXml(...)
{
try
{
DataSet ds = new DataSet();
ds.ReadXml(xmlFilePath);// 读出来后,进行写操作如果增加修改或删除一列
// 然后ds.WriteXml(xmlFilePath);
return true;
}
catch (Exception ex)
{
throw ex;
}
}如果有多个用户同时去对这个XML文件进行写操作的话就会提示
该进程无法访问文件“Path\xxx.xml”,因为该文件正由另一进程使用。  请问该如何解决? 谢谢了先.

解决方案 »

  1.   

    lock (this)
            {
    public static bool WriteXml(...)
    {
    try
    {
    DataSet ds = new DataSet();
    ds.ReadXml(xmlFilePath);// 读出来后,进行写操作如果增加修改或删除一列
    // 然后ds.WriteXml(xmlFilePath);
    return true;
    }
    catch (Exception ex)
    {
    throw ex;
    }
    }
    }
      

  2.   

    public static bool WriteXml(...)
    {
    lock (this)
            {try
    {
    DataSet ds = new DataSet();
    ds.ReadXml(xmlFilePath);// 读出来后,进行写操作如果增加修改或删除一列
    // 然后ds.WriteXml(xmlFilePath);
    return true;
    }
    catch (Exception ex)
    {
    throw ex;
    }
    }
    }
      

  3.   


    static方法中无法使用this吧?
      

  4.   

    lock一个static的对象,
    public static object syncobject = new object();
      

  5.   

    http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/SDaskgui06032003.mspx
      

  6.   

    你关闭xml文件的连接了吗?
    另外注意线程安全。
      

  7.   

    使用的时候 lock()
    不用的时候 unlock()平常的时候不要用file读它. 读了要赶紧释放.
      

  8.   


    关闭xml的连接指的是?偶现在不明白的是在使用DataSet操作xml的时候到底如何关闭连接或者释放资源?使用lock static方法的时候 还得重新声明新的对象,比较麻烦。