关于使用(双向)NetworkStream的异步IO,MSDN表示“对于每次调用BeginRead,必须调用一次EndRead。”
即使在EndRead()会抛出异常的情况下,例如在发出BeginRead()后关闭了NetworkStream,这也是正确的吗?
我不想有异常抛出的开销,但也不想泄漏由BeginRead()保留的操作系统宝贵资源。
我还知道,在测试流状态和条件EndRead()之间,流可能会被关闭,但是如果我们知道流已关闭,则可以省略EndRead(),这将节省大多数情况下的异常处理。
我做错了吗?
谢谢!