同时从多个进程写入文件

时间:2014-03-27 19:39:59

标签: c# filestream

                using (var stream = new FileStream(
                    this.filePath,
                    FileMode.Append,
                    FileAccess.Write,
                    FileShare.ReadWrite))
                {
                    using (var writer = new StreamWriter(stream))
                    {
                        writer.Write("A randomly generated string from process X thread Y");
                        writer.Flush();
                        stream.Flush();
                    }
                }

我基本上在2个不同的Visual Studios(不同的解决方案)中的2个测试方法中使用这段代码。我每次测试运行2个线程,对此进行1000次调用。

然而,当我执行此操作时,我执行的任何测试的所有行都会被写入文件,然后所有行都被其他进程写入文件。我认为writer.Flush()stream.Flush()调用会阻止这种情况发生。

如何从2个不同的进程同时写入文件?如果我同时从SAME进程中的2个不同线程写入文件,则按预期进行写入(线程之间交替进行许多)。但是对于两个不同的过程,无论哪一个首先开始写它的所有,然后另一个过程。这是为什么?

0 个答案:

没有答案