WebClient.DownloadFile() によるタイムアウトの管理
WebClient.DownloadFile()
メソッドでは、ダウンロードの待ち時間が長くなる場合があります。 これを回避するには、タイムアウト メカニズムを実装することが重要です。 これにより、ダウンロードが無期限にハングアップすることがなくなります。
解決策には、WebRequest
を拡張してタイムアウト プロパティを管理するカスタム クラスを作成することが含まれます。 その方法は次のとおりです:
<code class="language-csharp">using System; using System.Net; public class WebDownload : WebClient { /// <summary> /// Timeout in milliseconds /// </summary> 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>
WebDownload
クラスは標準の WebClient
と同様に機能しますが、構成可能な Timeout
プロパティが追加されています。
このアプローチでは、WebClient.DownloadFile()
を使用してダウンロード タイムアウトを制御し、過度の遅延を防ぎます。
以上がWebClient.DownloadFile() のタイムアウトを設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。