WebClient.DownloadFile() 시간 초과를 효율적으로 관리
WebClient.DownloadFile()
메서드에 대한 시간 초과 설정은 파일 다운로드 시 오랜 지연을 방지하는 데 중요합니다. 이 문서에서는 이 작업에 대한 시간 제한을 설정하는 효율적인 솔루션을 살펴보겠습니다.
기본 클래스 WebDownload
를 상속하는 WebClient
이라는 파생 클래스를 생성하겠습니다. 사용자 정의 클래스는 Timeout
속성을 도입하여 원하는 시간 초과 값을 설정할 수 있습니다.
WebDownload
클래스에 대한 C# 코드는 다음과 같습니다.
<code class="language-csharp">using System; using System.Net; public class WebDownload : WebClient { public int Timeout { get; set; } public WebDownload() : this(60000) { } public WebDownload(int timeout) { this.Timeout = timeout; } protected override WebRequest GetWebRequest(Uri address) { WebRequest request = base.GetWebRequest(address); if (request != null) { request.Timeout = this.Timeout; } return request; } }</code>
GetWebRequest
메서드를 재정의하면 WebRequest
객체를 가로채고 사용자 정의 클래스에서 지정한 시간 초과 값에 따라 해당 Timeout
속성을 수정할 수 있습니다. 이제 WebDownload
클래스를 사용할 때 초기화 중에 제한 시간 기간을 밀리초 단위로 제공하면 됩니다.
예:
<code class="language-csharp">WebDownload client = new WebDownload(30000); // 设置 30 秒超时 client.DownloadFile("http://example.com/file.zip", "file.zip");</code>
이렇게 하면 30초 제한 시간으로 파일 다운로드가 시작됩니다. 이 시간 내에 다운로드를 완료할 수 없는 경우 예외가 발생하여 상황을 적절하게 처리하고 불필요한 지연을 피할 수 있습니다.
위 내용은 WebClient.DownloadFile()에 대한 시간 초과를 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!