Heim > Backend-Entwicklung > C++ > Wie lege ich ein Timeout für WebClient.DownloadFile() fest?

Wie lege ich ein Timeout für WebClient.DownloadFile() fest?

Susan Sarandon
Freigeben: 2025-01-11 17:41:41
Original
591 Leute haben es durchsucht

How to Set a Timeout for WebClient.DownloadFile()?

WebClient.DownloadFile()-Timeouts effizient verwalten

Das Festlegen eines Zeitlimits für die WebClient.DownloadFile()-Methode ist wichtig, um lange Verzögerungen beim Herunterladen von Dateien zu vermeiden. In diesem Artikel wird eine effiziente Lösung zum Festlegen eines Timeouts für diesen Vorgang untersucht.

Wir erstellen eine abgeleitete Klasse namens WebDownload, die von der Basisklasse WebClient erbt. Die benutzerdefinierte Klasse führt das Attribut Timeout ein, mit dem wir den gewünschten Timeout-Wert festlegen können.

Hier ist der C#-Code für die Klasse WebDownload:

<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>
Nach dem Login kopieren

Durch Überschreiben der GetWebRequest-Methode können wir das WebRequest-Objekt abfangen und seine Timeout-Eigenschaften basierend auf dem von der benutzerdefinierten Klasse angegebenen Timeout-Wert ändern. Wenn Sie nun die Klasse WebDownload verwenden, müssen Sie bei der Initialisierung nur noch die Timeout-Dauer in Millisekunden angeben.

Zum Beispiel:

<code class="language-csharp">WebDownload client = new WebDownload(30000); // 设置 30 秒超时
client.DownloadFile("http://example.com/file.zip", "file.zip");</code>
Nach dem Login kopieren

Dadurch wird ein Dateidownload mit einer Zeitüberschreitung von 30 Sekunden eingeleitet. Wenn der Download nicht innerhalb dieses Zeitrahmens abgeschlossen werden kann, wird eine Ausnahme ausgelöst, sodass Sie die Situation reibungslos bewältigen und unnötige Verzögerungen vermeiden können.

Das obige ist der detaillierte Inhalt vonWie lege ich ein Timeout für WebClient.DownloadFile() fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage