次の例外が発生します。
System.NotSupportedException : This stream does not support seek operations.
at System.Net.Sockets.NetworkStream.Seek(Int64 offset, SeekOrigin origin)
at System.IO.BufferedStream.FlushRead()
at System.IO.BufferedStream.WriteByte(Byte value)
次のリンクは、これがマイクロソフトの既知の問題であることを示しています。 http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=273186
このスタックトレースは、次の 2 つのことを示しています。
- System.IO.BufferedStream は、ばかげたポインタ移動操作を行います。BufferedStream は、基礎となるストリームをバッファする必要があります。このようなシーク操作があるとバッファの品質が悪くなります。
- Seek をサポートしていないストリームでは安定して動作しません。
代替手段はありますか?C# で NetworkStream と一緒にバッファーが必要ですか、それとも既にバッファーされていますか。
編集: 基になるソケット ストリームへの読み取り/書き込み呼び出しの数を単純に減らしたい。