(双方向) NetworkStream を使用した非同期 IO に関連して、MSDNは、「BeginRead を呼び出すたびに、EndRead を 1 回呼び出す必要がある」と述べています。
BeginRead() が発行された後に NetworkStream が閉じられた場合など、EndRead() が例外をスローする場合でも、これは当てはまりますか?
例外のスローのオーバーヘッドは必要ありませんが、BeginRead() によって予約された OS の貴重なリソースをリークしたくありません。
また、ストリームの状態のテストと条件付きの EndRead() の間でストリームを閉じることができることも知っていますが、ストリームが閉じていることがわかっているときに EndRead() を省略できる場合、大部分のケースで例外処理を節約できます。 .
私はそれを間違っていますか?
ありがとう!