【问题标题】:Duplicating a stream复制流
【发布时间】:2009-05-04 17:27:27
【问题描述】:

我有一个提供 System.IO.Stream 实例的生产者。 我也有几个使用这个流的客户端。

是否可以为每个客户端提供流的“私人视图”?例如,如果 clientA 从流中读取,它不会影响 clientB 看到的位置(即,如果 clientB 开始从流中读取,它将获取它的开头,而不是从 clientA 离开位置的位置)。 如果有任何不同,客户端只是从流中读取。

希望它有意义。

提前致谢, 迈克

【问题讨论】:

  • 谢谢你们的回答!我希望 .Net 框架中已经内置了一些东西,但我想我必须自己实现它。再次感谢!

标签: c# .net stream


【解决方案1】:

我认为您需要创建自己的自定义“TssStream”来处理从源流到多个流的缓冲。

您需要从 Stream 覆盖的方法数量仅限于处理只读,但协调每个客户端(可能通过帮助程序)的位置需要一点思考。

【讨论】:

    【解决方案2】:

    您可以从Stream 继承一个类,该类在构造函数中获取底层流并跟踪该私有视图实例的位置。这仅在基本流可搜索时才有效。

    【讨论】:

      【解决方案3】:

      您可以通过读取流、缓存数据并为每个客户端打开新流到缓存来完成此操作。

      【讨论】:

        猜你喜欢
        • 2015-10-27
        • 2012-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多