有没有办法让第一个程序写入文本文件,而程序会等到文本文件没有被另一个进程使用。
答案 0 :(得分:2)
您可以在第二个程序中使用FileSystemWatcher
类,以查看第一个程序何时完成。如果已创建,修改或删除文件,FileSystemWatcher
将触发事件。
更多信息:http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx
答案 1 :(得分:1)
最好的方法是实现充当队列的第3个程序。您的前2个程序将数据发送到此程序,该程序将实际写入文本文件。
这第三个程序可能是MSMQ,Windows服务,或一组网络服务,或任何其他 - 这取决于您的要求......
答案 2 :(得分:0)
防止比赛状况。您必须实现try-wait-retry选项。
尝试从文件中读取 如果失败则等待一段时间再试一次
答案 3 :(得分:0)
是。您将每个逻辑写入放在队列的末尾。在另一个线程中,您从队列前面读取逻辑写入并尝试将它们写入文件(打开文件,写入,关闭文件);如果在此期间发生IOException,则将写入保留在队列的前面,否则将其从队列的前面删除。如果两个进程都遵循此模式,则它们将能够将写入交错到文件。