0

我有一个平面文件数据库(一个 xml 文件)。我有一个读取和编辑这个数据库的客户端。我在一个目录中有许多客户端连接到的 xml 文件。如果一个客户端进行编辑,则需要在所有客户端上进行更新。

我不能使用数据库,必须使用这种平面文件结构(即我不能一直运行管理服务器应用程序)

客户端运行 XP 和 .NET

这个问题的现代解决方案是什么?我有一段时间没有进行任何 XP 或 .NET 编码了,简单地使用文件锁会很容易吗?你甚至在 XP 上有单独的读/写锁吗?

编辑

客户端都在不同的机器上,数据库存储在网络共享上。

4

1 回答 1

0

您可以使用System.Threading.Mutex来处理对该文件的读取/编辑访问。在您正在处理或阅读此平面文件的班级中,您应该编写

yourMutex.WaitOne();
ReaderOrWrite();
yourMutex.ReleaseMutex();

你可以在这里找到一个很好的示例代码,它还可以处理没有创建互斥锁的情况。

Mutex 是一种信号量,用于处理对关键区域的多次访问,在您的示例中为 xml 文件,并提供防止关键部分并发执行的解决方案。

于 2012-10-18T11:58:32.410 回答