【问题标题】:C# - Write Data To A Stream + Read Data With Another StreamC# - 将数据写入流 + 使用另一个流读取数据
【发布时间】:2013-02-21 09:00:20
【问题描述】:

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

【问题讨论】:

  • 属于codereview.stackexchange.com
  • @MikroDel 什么?我不能再问有关在 stackoverflow 上编程的问题了?我的代码没有任何问题。我只需要正确的技术。
  • 请查看 codereview.stackexchange.com - 这是一个可以毫无问题地发布代码的地方(正如您所评论的 :))分析它并发布一些建议以使其更好

标签: c# multithreading stream


【解决方案1】:

我发布了我称为ProducerConsumerStream 的东西,它可以做到这一点。它是一个内存流,允许一个读取器和一个写入器。它是一个固定大小的循环缓冲区,允许消费者以生产者写入的速度读取。见Building a new type of stream

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 2013-10-07
    • 1970-01-01
    • 2014-01-27
    相关资源
    最近更新 更多