私は最近、このWebページhttp://www.yoda.arachsys.com/csharp/readbinary.htmlに出くわし、ファイルストリームから読み取るときに取るべき注意事項を説明しています。その要点は、次のコードが常に機能するとは限らないということです。
// Bad code! Do not use!
FileStream fs = File.OpenRead(filename);
byte[] data = new byte[fs.Length];
fs.Read (data, 0, data.Length);
Readの3番目の引数は読み取られる最大バイト数であるため、これは危険です。Readの戻り値を使用して、実際に読み取られた量を確認する必要があります。
私の質問は、メモリストリームから読み取るときに同じ予防策を講じる必要があり、どのような状況ですべてのバイトが読み取られる前に読み取りが返される可能性があるかということです。