复制流

时间:2009-05-04 17:27:28

标签: c# .net stream

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

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

希望它有意义。

提前致谢, 麦克

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

您可以从Stream继承一个类,该类接受构造函数中的基础流,并跟踪该私有视图实例的位置。仅当基本流可搜索时才有效。

答案 2 :(得分:0)

您可以通过读取流,缓存数据并为每个客户端的缓存打开新流来实现此目的。