「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > webclient.downloadfile()のタイムアウトを設定するためのヒント

webclient.downloadfile()のタイムアウトを設定するためのヒント

2025-04-21に投稿されました
ブラウズ:172

How Can I Set a Timeout for WebClient.DownloadFile()?

WebClientを使用してタイムアウトの管理

webclient.downloadfile()

メソッドは、長いダウンロード待機につながる場合があります。 これを回避するには、タイムアウトメカニズムを実装することが重要です。 これにより、ダウンロードが無期限にハングアップしないようにします。 ソリューションでは、

webRequest

を拡張するカスタムクラスを作成して、タイムアウトプロパティを管理します。 方法は次のとおりです。

system; System.netを使用しています。 パブリッククラスのWebダウンロード:WebClient { /// ///ミリ秒単位のタイムアウト /// public int timeout {get;セット; } public webdownload():this(60000){} パブリックウェブダウンロード(intタイムアウト) { this.timeout = timeout; } 保護されたオーバーライドWebRequest getWebRequest(URIアドレス) { webRequest request = base.getWebRequest(アドレス); if(request!= null) { request.timeout = this.timeout; } 返品リクエスト。 } }
using System;
using System.Net;

public class WebDownload : WebClient
{
    /// 
    /// Timeout in milliseconds
    /// 
    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;
    }
}
webdownload

クラスは標準 webclient のような関数ですが、構成可能な timeout プロパティを追加します。 このアプローチは、 webclient.downloadfile()

を使用して、ダウンロードタイムアウトを制御することを提供します。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3