Maison > développement back-end > C++ > Comment définir un délai d'attente pour WebClient.DownloadFile() ?

Comment définir un délai d'attente pour WebClient.DownloadFile() ?

Susan Sarandon
Libérer: 2025-01-11 17:41:41
original
590 Les gens l'ont consulté

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

Gérer efficacement les délais d'attente de WebClient.DownloadFile()

La définition d'un délai d'attente pour la méthode WebClient.DownloadFile() est essentielle pour éviter de longs retards lors du téléchargement des fichiers. Cet article explorera une solution efficace pour définir un délai d'attente pour cette opération.

Nous allons créer une classe dérivée appelée WebDownload qui hérite de la classe de base WebClient. La classe personnalisée introduira l'attribut Timeout, nous permettant de définir la valeur de délai d'attente souhaitée.

Voici le code C# de la classe 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>
Copier après la connexion

En remplaçant la méthode GetWebRequest, nous pouvons intercepter l'objet WebRequest et modifier ses propriétés Timeout en fonction de la valeur de délai d'attente spécifiée par la classe personnalisée. Désormais, lorsque vous utilisez la classe WebDownload, il vous suffit de fournir la durée du délai d'attente en millisecondes lors de l'initialisation.

Par exemple :

<code class="language-csharp">WebDownload client = new WebDownload(30000); // 设置 30 秒超时
client.DownloadFile("http://example.com/file.zip", "file.zip");</code>
Copier après la connexion

Cela lancera un téléchargement de fichier avec un délai d'attente de 30 secondes. Si le téléchargement ne peut pas se terminer dans ce délai, une exception est levée, vous permettant de gérer la situation avec élégance et d'éviter des retards inutiles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal