我需要在C#中构建和实现一个多用户应用程序,其中持久层由文件组成 - 而不是数据库。这些文件将位于共享文件系统中,可供读取/写入应用程序的所有客户端。因此出现了并发控制和数据一致性的问题。如果存储层是数据库,那么数据库供应商会解决这个问题,但现在在基于文件的存储中如何确保多用户环境中的数据一致性?而且,如果一个客户端更改了文件中的数据,那么可能已经打开该文件的另一个客户端如何得到通知。能否请您指出有助于我解决这些问题的资源。感谢
答案 0 :(得分:0)
您可以尝试FileSystemWatcher 并实现Reader-Writer Lock模式。当有人想要读取数据时,他们将其打开以进行只读,共享读取,快速读取,然后关闭并在需要时监听更改。当有人想要写数据时 - 打开带有写访问权限而不共享的文件。