【发布时间】:2009-07-21 16:18:59
【问题描述】:
如何写入可由多个源(可能以并发方式)访问的文本文件以确保不会丢失任何写入操作?
例如,如果两个不同的进程同时写入文件,这可能会导致问题。简单的解决方案(不是很快也不是很优雅)是在开始进程时锁定文件(创建一个 .lock 文件或类似文件)并在写入完成时释放它(删除锁)。
开始写的时候,我会检查.lock文件是否存在并延迟写直到文件被释放。
对于这种情况,建议遵循什么模式?
谢谢
编辑 我的意思是进程,比如来自不同客户端、不同用户等的不同程序,而不是同一个程序中的线程
【问题讨论】:
-
你的意思是两个不同的进程或线程?因为如果您想为几个进程安全访问一个文件,那么如果不使用一些互斥锁或其他进程间锁定机制,您将无能为力。
标签: c# logging concurrency