我收到HttpWebRequest(使用修改后的版本Jeff Richter's CCR wrappers)的响应,然后检查一些标题以决定是否继续下载。有时我可能不想继续,因此我发布response.Close和request.Abort。是否有必要发布GetResponseStream然后关闭流,或者这是隐含的,当你调用response.Close?HttpWebResponse:关闭流
发出的GetResponse的docs state后:
必须调用Close方法关闭该流并释放连接。否则可能会导致应用程序无法连接。
因此,这是否意味着一旦我们有回应,那么它是必须获得流并关闭它?
我们看到一些相当奇怪的问题,其中下载最终会淹没系统。这似乎是资源泄漏的最强候选人,但不知道是否有其他人对此问题有经验。
另外:假设它是同一个流,GetResponseStream是否安全两次?
我错过了它是IDisposable。关于为什么Dispose方法是私人的任何线索?这是正常的吗?使用声明看起来像是一个很好的增强。 +1 – spender 2009-10-08 11:23:05
[使用Dispose方法让智能自我不要检查“IDisposability”] – spender 2009-10-08 11:25:38
@spender它已作为[显式接口实现]实现(http://msdn.microsoft.com/zh-cn/我们/库/ vstudio/ms173157.aspx)。我相信在框架的早期模式是隐藏'Dispose'在一个明确的实现后面并且定义一个执行相同动作的公共'Close'方法。 – 2013-08-07 20:58:37