0

现在我有一个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));
4

1 回答 1

1

我发表了一些我称之为ProducerConsumerStream会做到这一点的东西。它是一个内存流,允许一个读取器和一个写入器。它是一个固定大小的循环缓冲区,允许消费者以尽可能快的速度读取生产者可以写入。请参阅构建一种新型流

于 2013-03-06T14:21:53.073 回答