多个进程同时读写一个文件

14 浏览
0 Comments

多个进程同时读写一个文件

我有一个名为ABC.txt的文本文件,将由多个进程进行读写。因此,当一个进程正在从文件ABC.txt读取或写入时,必须对文件ABC.txt进行锁定,以防止其他进程对其进行读写。我知道枚举System.IO.FileShare可能是处理此问题的正确方式。但是我使用了另一种方式,我不确定是否正确。以下是我的解决方案。

我在文件夹中添加了另一个文件Lock.txt。在我能够从文件ABC.txt读取或写入之前,我必须具备从Lock.txt文件中读取的能力。在我从文件ABC.txt读取或写入之后,我必须释放该能力。以下是代码。

#region 进入锁定状态

FileStream lockFileStream = null;

bool lockEntered = false;

while (lockEntered == false)

{

try

{

lockFileStream = File.Open("Lock.txt", FileMode.Open, FileAccess.Read, FileShare.None);

lockEntered = true;

}

catch (Exception)

{

Thread.Sleep(500);

}

}

#endregion

#region 执行任务

// 从文件ABC.txt读取或写入

// 从其他文件读取或写入

#endregion

#region 释放锁定状态

try

{

if (lockFileStream != null)

{

lockFileStream.Dispose();

}

}

catch

{

}

#endregion

在我的电脑上,这个解决方案似乎运行良好,但我仍然不能确定是否合适。

编辑:多个进程,而不是同一进程中的多个线程。

0