C# 当我有两个进程使用同一个文件时,如何确保线程安全?
我有两个不同的进程共享同一个文件,第一个是Reader,第二个是writer。我在c#中使用StreamWriter和StreamReader,但我有一个例外:“进程无法访问文件‘filename’,因为它正被另一个进程使用”。C# 当我有两个进程使用同一个文件时,如何确保线程安全?,c#,multithreading,C#,Multithreading,我有两个不同的进程共享同一个文件,第一个是Reader,第二个是writer。我在c#中使用StreamWriter和StreamReader,但我有一个例外:“进程无法访问文件‘filename’,因为它正被另一个进程使用”。 如何实现线程安全 这与线程安全无关,与进程间同步无关。使用进程间锁(称为named)这与线程安全无关,与进程间同步无关。使用进程间锁(称为named)对于我使用的编写器,我找到了解决方案: using (StreamWriter sw = new StreamWri
如何实现线程安全 这与线程安全无关,与进程间同步无关。使用进程间锁(称为named)这与线程安全无关,与进程间同步无关。使用进程间锁(称为named)对于我使用的编写器,我找到了解决方案:
using (StreamWriter sw = new StreamWriter(Path))
{
//WorkTodo
}
为了读者
using (StreamReader sr = new StreamReader(Path))
{
//WorkTodo
}
我找到了解决方案,对于我使用的作者:
using (StreamWriter sw = new StreamWriter(Path))
{
//WorkTodo
}
为了读者
using (StreamReader sr = new StreamReader(Path))
{
//WorkTodo
}
锁定资源在您的情况下,不需要线程安全,应该有进程间同步。当您创建
StreamReader
时,请确保您使用的构造函数接受FileAccess
参数,并传递FileAccess.Read
。这应该允许读卡器在写入时读取。锁定资源在您的情况下,不需要线程安全,应该有进程间同步。当您创建StreamReader
时,请确保您使用的构造函数接受FileAccess
参数,并传递FileAccess.Read
。这应该允许读者在作者写作时阅读。