【发布时间】:2011-02-18 18:35:50
【问题描述】:
我有一个文本文件,多个线程/进程将写入它(它是一个日志文件)。
文件有时会因为并发写入而损坏。
我想从所有线程中使用文件写入模式,该模式在文件系统级别本身是顺序的。
我知道可以使用锁(用于多个进程的互斥锁)并同步写入此文件,但我更喜欢以正确的模式打开文件并将任务留给System.IO。
有可能吗?这种情况的最佳做法是什么?
【问题讨论】:
-
所有进程是否都在同一台机器上运行,或者您正在访问网络共享上的文件?
-
我不认为(但我不是 100% 肯定)有办法以“等待直到它可以锁定”类型的共享模式打开文件.我认为做你想做的事情的唯一方法是使用互斥锁。当然,如果您在网络共享上打开文件,这也不是解决方案,您可能需要设置一个服务器来接收日志调用。
-
@Lasse:同一台机器上的所有线程/进程(Windows)
标签: c# concurrency filesystems writing