我有3个进程,每个进程都监听数据提要。接收数据后,所有3个进程都需要读取和更新同一个文件。这3个过程一整天都在运行。显然,每个进程都需要对文件进行独占读/写锁定。
我可以使用“named mutex”来保护文件的读/写,或者我可以使用FileShare.None打开文件。
这两种方法有效吗?哪一个更好?
程序是用C#编写的,可以在Windows上运行。
答案 0 :(得分:1)
为此使用命名的互斥锁。如果您在一个进程中使用FileShare.None打开该文件,其他进程将在尝试打开该文件时抛出异常,这意味着您必须在这些进程中处理等待和重试等。
答案 1 :(得分:0)
我同意命名的互斥锁。等待/重试文件访问非常繁琐且容易出现异常,而命名的互斥解决方案非常简洁明了。
答案 2 :(得分:0)
“monitor”是你选择的一个,因为它是同步问题的解决方案。