如何在没有独占锁的情况下使用FileStream附加到文件?

Nei*_*ski 3 .net c# file stream filestream

FileStream在C#/ .NET中尝试做的是打开两个流:一个附加到文件,另一个异步读取这些写入(用于单元测试一些网络连接处理代码).我无法弄清楚如何让作家流开在非EXLUSIVE锁定模式的文件,因此代码总是抛出一个异常:

该进程无法访问文件'C:\ test.txt',因为它正由另一个进程使用.

这里有一些代码可以证明这个问题:

FileStream fwriter = new FileStream("C:\\test.txt", FileMode.Append,
    FileAccess.Write, FileShare.Read);
FileStream freader = new FileStream("C:\\test.txt", FileMode.Open,
    FileAccess.Read, FileShare.Read);
Run Code Online (Sandbox Code Playgroud)

Rob*_*ker 5

看到这个问题:C#文件读/写fileshare似乎不起作用

简而言之,您的freader必须指定FileShare.Write以允许文件中已有写入程序.