2009-05-04 15 views
3

私はSystem.IO.Streamインスタンスを提供するプロデューサを持っています。 私はまた、このストリームを消費するいくつかのクライアントを持っています。ストリームを複製する

各クライアントにストリームの「プライベートビュー」を与えることは可能ですか?たとえば、クライアントAがストリームから読み込みを行っても、クライアントBが見る位置には影響しません(つまり、クライアントBがストリームから読み込みを開始すると、クライアントAはその位置を離れた場所ではなく、ストリームの開始点を取得します)。 違いがあった場合、クライアントはストリームからのみ読み込みます。

希望します。

事前のおかげで、 マイク

+0

お返事ありがとうございます! .Netフレームワークが既に組み込まれていることを期待していましたが、私はそれを自分で実装する必要があると思います。 もう一度おねがいします! –

答えて

1

あなたはコンストラクタで基本となるストリームを取り、プライベートビューのインスタンスの位置を追跡Streamからクラスを継承することができます。これは、基本ストリームがシーク可能である場合にのみ機能します。

0

ストリームを読み取ってデータをキャッシュし、新しいストリームを各クライアントのキャッシュにキャッシュすることで、これを行うことができます。

2

ソースストリームから複数のストリームへのバッファリングを処理する独自のカスタム "TssStream"を作成する必要があると思います。

Streamからオーバーライドする必要があるメソッドの数は、読み取り専用に制限されていますが、各クライアント(ヘルパー経由の可能性があります)が少し考えているところで調整してください。

関連する問題