C# - 将数据写入流+使用另一个流读取数据

时间:2013-03-06 14:13:08

标签: c# multithreading stream

现在我有一个StreamWriter和一个StreamReader,1个文件,其中包含(文本)数据,至少有2个线程。 1个线程是一个监听器并读取数据。另一个线程将内容写入流中。

我可以避免使用文件作为内存缓冲区吗?

我认为可以从两端连接2个流。但不知道怎么样。我创建写入该文件的编写器。然后我启动一个线程,创建一个读取该文件并完成其工作的读取器。它有效,但我想避免使用文件。


// writer
StreamWriter writer = new StreamWriter(new FileStream("text.txt", FileMode.Create, FileAccess.Write, FileShare.Read));
writer.AutoFlush = true;
// reader
StreamReader reader = new StreamReader(new FileStream("text.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite));

1 个答案:

答案 0 :(得分:1)

我发布了一些我称之为ProducerConsumerStream的内容。它是一个内存流,允许一个读者和一个作者。它是一个固定大小的循环缓冲区,允许消费者以生产者可以写的速度读取。请参阅Building a new type of stream