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

Comment puis-je définir un délai d'expiration pour WebClient.DownloadFile() ?

Linda Hamilton
Libérer: 2025-01-11 17:46:45
original
627 Les gens l'ont consulté

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

Gestion des délais d'attente avec WebClient.DownloadFile()

La méthode WebClient.DownloadFile() peut parfois entraîner de longues attentes de téléchargement. Pour éviter cela, la mise en œuvre d’un mécanisme de délai d’attente est cruciale. Cela garantit que les téléchargements ne se bloquent pas indéfiniment.

Une solution consiste à créer une classe personnalisée s'étendant WebRequest pour gérer la propriété timeout. Voici comment :

<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>
Copier après la connexion

La classe WebDownload fonctionne comme la classe WebClient standard, mais ajoute une propriété Timeout configurable.

Cette approche permet de contrôler les délais d'attente de téléchargement à l'aide de WebClient.DownloadFile(), évitant ainsi les retards excessifs.

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