Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当我有两个进程使用同一个文件时,如何确保线程安全?_C#_Multithreading - Fatal编程技术网

C# 当我有两个进程使用同一个文件时,如何确保线程安全?

C# 当我有两个进程使用同一个文件时,如何确保线程安全?,c#,multithreading,C#,Multithreading,我有两个不同的进程共享同一个文件,第一个是Reader,第二个是writer。我在c#中使用StreamWriter和StreamReader,但我有一个例外:“进程无法访问文件‘filename’,因为它正被另一个进程使用”。 如何实现线程安全 这与线程安全无关,与进程间同步无关。使用进程间锁(称为named)这与线程安全无关,与进程间同步无关。使用进程间锁(称为named)对于我使用的编写器,我找到了解决方案: using (StreamWriter sw = new StreamWri

我有两个不同的进程共享同一个文件,第一个是Reader,第二个是writer。我在c#中使用StreamWriter和StreamReader,但我有一个例外:“进程无法访问文件‘filename’,因为它正被另一个进程使用”。
如何实现线程安全

这与线程安全无关,与进程间同步无关。使用进程间锁(称为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
。这应该允许读者在作者写作时阅读。