日期:2014-05-20  浏览次数:21015 次

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

------解决方案--------------------
在存取xml文件的时候加一个互斥量可以吗?

比如
Mutex mx=new Mutex();
mx.WaitOne();
//操作
xm.ReleaseMutex();


还是我理解有误?
------解决方案--------------------
同时处理一个文件可以加一个文件锁,创建一个文件专门用来做文件锁
每次访问xml文件前都以独占方式打开这个文件锁,这样就不会有冲突了
------解决方案--------------------
TO:C#的xml存取部分对于这个问题有没有专门的处理方法

你是说互斥操作?

好像没有,用一个System.Threading.Mutex互斥量不能解决吗?
------解决方案--------------------
使用文件File类的标志量,可以解决这个问题,比如独占读,独占写等,不过另外一个未达到访问目的的程序会报错.

可以使用Mutex等.
------解决方案--------------------
试想 可以在内存中 保存 一个 特别的 变量
给你的 几个 应用程序 访问

通过这个变量的 值 来获取 是否有另一程序在访问xml文件
如果有 就等待 直到这个值为允许访问 再执行相应的读写