小人想用C#编写几个应用程序,这些程序共享xml数据,因而如何避免几个应用程序同时存取一个xml文件,以及由于文件异步存取而带来的数据操作失误成了首要问题,不知道大家对此有何建议?

解决方案 »

  1.   

    在存取xml文件的时候加一个互斥量可以吗?比如
    Mutex mx=new Mutex();
    mx.WaitOne();
    //操作
    xm.ReleaseMutex();
    还是我理解有误?
      

  2.   

    同时处理一个文件可以加一个文件锁,创建一个文件专门用来做文件锁
    每次访问xml文件前都以独占方式打开这个文件锁,这样就不会有冲突了
      

  3.   

    C#的xml存取部分对于这个问题有没有专门的处理方法。
      

  4.   

    TO:C#的xml存取部分对于这个问题有没有专门的处理方法你是说互斥操作?好像没有,用一个System.Threading.Mutex互斥量不能解决吗?
      

  5.   

    使用文件File类的标志量,可以解决这个问题,比如独占读,独占写等,不过另外一个未达到访问目的的程序会报错.可以使用Mutex等.
      

  6.   

    试想 可以在内存中 保存 一个 特别的 变量
    给你的 几个 应用程序 访问通过这个变量的 值 来获取 是否有另一程序在访问xml文件
    如果有 就等待 直到这个值为允许访问 再执行相应的读写