В отношении асинхронного ввода-вывода с использованием (двунаправленного) NetworkStream MSDN говорит, что «EndRead должен вызываться один раз для каждого вызова BeginRead . "
Верно ли это даже для случаев, когда EndRead ()вызовет исключение, например, в случае, если NetworkStream был закрыт после того, как был запущен BeginRead ()?
Мне не нужны накладные расходы на выброс исключения, но я не хочу и утечка ОС драгоценные ресурсы, зарезервированные BeginRead ().
Я также знаю, что поток может быть закрыт между проверкой состояния потока и условным EndRead (), но если EndRead () может быть опущен, когда мы знаем ] поток закрыт, что позволит сэкономить на обработке исключений в большинстве случаев.
Я делаю это неправильно?
Спасибо!