ホームページ > バックエンド開発 > C++ > WebClient.DownloadFile() でタイムアウトを実装するにはどうすればよいですか?

WebClient.DownloadFile() でタイムアウトを実装するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-11 17:51:42
オリジナル
352 人が閲覧しました

How to Implement Timeouts with WebClient.DownloadFile()?

WebClient.DownloadFile() のタイムアウトの設定

WebClient.DownloadFile() を使用したリモート ファイルのダウンロードは、特にアクセスできないファイルの場合、時間がかかることがあります。 タイムアウト メカニズムは、無期限の待機を避けるために非常に重要です。

実装:

タイムアウトを実装する最も効果的な方法は、WebRequest を継承するカスタム クラスを作成することです。これにより、基になるリクエストで Timeout プロパティを直接設定できるようになります。 以下に例を示します:

<code class="language-csharp">using System;
using System.Net;

public class TimedWebClient : WebClient
{
    public int TimeoutMilliseconds { get; set; }

    public TimedWebClient() : this(60000) { } // Default 60-second timeout

    public TimedWebClient(int timeoutMilliseconds)
    {
        TimeoutMilliseconds = timeoutMilliseconds;
    }

    protected override WebRequest GetWebRequest(Uri address)
    {
        WebRequest request = base.GetWebRequest(address);
        if (request != null)
        {
            request.Timeout = TimeoutMilliseconds;
        }
        return request;
    }
}</code>
ログイン後にコピー

この TimedWebClient クラスは標準の WebClient と同様に機能しますが、構成可能なタイムアウトが追加されます。 タイムアウトをミリ秒単位で指定して、ドロップインの代替として使用します。 これにより、すべてのダウンロード試行が定義されたタイムアウトを遵守し、利用できないファイルによる長時間の遅延が防止されます。

以上がWebClient.DownloadFile() でタイムアウトを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート