如何实现多个应用程序对文件的读写操作????现在我有两个应用程序A和B,一个XML文件,A程序要对XML进行读出里面的数据,也要写入新数据,与此同时B程序也要进行对XML文件进行读取数据,并对操作完的数据进行删除操作。我现在出现了问题是:中间XML文件的数据丢失了部分。请问高手是什么原因,有什么好的方法可以解决此类问题,谢谢。

解决方案 »

  1.   

    要同時修改,就別用XML,看能否使用本地數據庫例如Access
      

  2.   

    就没有操作文件的这样的方法吗?或者例子吗?既然Acess数据库可以实现这样的功能,其他数据文件应该也可以阿?大家来研究研究阿。。
      

  3.   

    建议用文本数据库 SQLite http://www.sqlite.org/
      

  4.   

    如果只有一个XML文件 锁定就比较简单了
    private static readonly object lockObj = new object();......lock (lockObj)
    {
    //操作XML文件代码
    }
      

  5.   


    你的lockObj是指XML文件吗?我曾经这样尝试过:
    A程序操作XML:
    lock(xmlPath)
    {
       ReadXML();
       WriteXML():
    }
    B程序操作XML:
    lock(xmlPath)
    {
       ReadXML();
       DeteteXMLData():
    }
    其中xmlPath为XML文件的路径,请问错在哪里?
      

  6.   

    文件畢竟難以替代數據庫。to:樓上
    LZ是兩個不同的程序,你用lock (lockObj) 是沒有作用的。
      

  7.   

    Access或者说你用数据库不会出现这个问题是因为锁定机制,包括表级锁定,甚至记录级的锁定,当进行修改和删除操作的时候,数据库都会进行一个相应的锁定操作,以防止产生脏数据,那都是数据库自动进行