Streamで非同期のreadを行っています。Stream.BeginRead(〜);
このBeginReadをキャンセルするにはどうすれば良いのでしょうか。

通常の読み込みだと、BeginReadで指定したコールバック先でStream.EndRead(〜);を実行するのですが、1バイトも受信していない場合、EndReadを実行すると待ち状態になってしまいます。