C#有两个程序对同一个文本文件进行读写操作
本文关键字:文件 文本 同一个 操作 读写 程序 两个 | 更新日期: 2023-09-27 18:29:31
有没有一种方法可以让第一个程序写入文本文件,同时程序等待,直到另一个进程没有使用文本文件。
您可以在第二个程序中使用FileSystemWatcher
类,查看第一个程序何时完成。如果文件已创建、修改或删除,FileSystemWatcher
将触发一个事件。
更多信息:http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx
最好的方法是实现充当队列的第三个程序。您的前两个程序将数据发送到该程序,该程序将实际写入文本文件。
这第三个程序可以是MSMQ,或Windows服务,或一组web服务,或任何东西-这取决于您的要求。。。
防止竞争条件。您必须实现try-wait-retry选项。
尝试从文件中读取如果失败,请等待一段时间,然后重试
是。您将每个逻辑写入都放置在队列的末尾。在另一个线程中,您从队列的前面读取逻辑写入,并尝试将它们写入文件(打开文件、写入、关闭文件);如果在此期间发生IOException,则将写操作留在队列的前面,否则将其从队列的前面删除。如果两个进程都遵循这种模式,那么它们将能够交错写入文件。