HttpWebRequest (수정 된 버전 Jeff Richter's CCR wrappers 사용)에서 응답을 받고 있는데, 몇 가지 헤더를 검사하여 다운로드를 계속할지 여부를 결정합니다. 때로는 계속하고 싶지 않을 수도 있으므로 결과적으로 response.Close과 request.Abort을 발행합니다. 스트림을 닫으려면 GetResponseStream을 발급해야합니까, 아니면 response.Close을 호출 할 때 암시 적입니까? HttpWebResponse : 스트림 닫기
하는 GetResponse의 docs state을 실행 한 후에 :당신은 연결 스트림을 닫고 해제 Close 메서드를 호출해야합니다. 그렇게하지 않으면 응용 프로그램의 연결이 끊어 질 수 있습니다.
이렇게되면 응답을 받으면 스트림을 가져 와서 닫아야합니다.
매달려있는 다운로드가 결국 시스템을 습격하게 만드는 상당히 이상한 문제가 있습니다. 이것은 리소스 유출에 대한 가장 강력한 후보자처럼 보이지만 다른 사람이이 문제에 경험이 있는지 궁금해합니다.
제쳐두고 : GetResponseStream은 동일한 스트림이라는 가정에서 두 번 안전합니까?
나는 그것이 IDisposable 이었다는 것을 놓쳤다. Dispose 메서드가 비공개 인 이유에 대한 단서가 있습니까? 이게 정상인가? using 문은 뛰어난 향상으로 보입니다. +1 – spender
[Dispose 메서드에 대한 순항 인텔리 센스에 의해 "IDisposability"를 확인하지 않으려면 자기 노트를 만듭니다. – spender
@spender [명시 적 인터페이스 구현]으로 구현되었습니다 (http://msdn.microsoft.com/en- us/library/vstudio/ms173157.aspx). 프레임 워크의 초기 패턴은 명시 적 구현 뒤에 'Dispose'를 숨기고 동일한 작업을 수행하는 공개 'Close'메소드를 정의하는 것이라고 생각합니다. –