c# - 并发文件写入

标签 c# logging concurrency

如何写入可由多个源(可能以并发方式)访问的文本文件以确保不会丢失任何写入操作?

比如,如果两个不同的进程同时写入文件,这可能会导致问题。最简单的解决方案(速度不是很快,也不是很优雅)是在开始进程时锁定文件(创建 .lock 文件或类似文件)并在写入完成时释放它(删除锁)。

开始写入时,我会检查.lock文件是否存在,并延迟写入,直到文件被释放。

对于这种情况,建议遵循什么模式?

谢谢

编辑 我的意思是进程,比如来自不同客户端、不同用户等的不同程序,而不是同一程序中的线程

最佳答案

考虑使用一个简单的数据库。您将相对轻松地获得所有这些内置安全性。

关于c# - 并发文件写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1160233/

相关文章:

C# 相当于 file_get_contents (PHP)

c# - 奇怪的 LINQ 异常(索引越界)

web-services - 登录密码 Web 服务 Java

java - Junit 测试在服务器启动时带来奇怪的错误 (logger.DEBUG)

c++ - 想不出这个自定义事件类的好名字

c# - Asp.net c# 中的偏移 div 元素

c++11 - boost 日志 : using c++11 lambda expression to filter severity level

java - HashMap 具有旧值,直到它们不再被引用

Java:没有 AtomicFloat 或 AtomicDouble 吗?

c# - 如何在 DateTime 用户设置中包含毫秒?