Maison > développement back-end > C++ > Comment implémenter des délais d'attente avec WebClient.DownloadFile() ?

Comment implémenter des délais d'attente avec WebClient.DownloadFile() ?

Susan Sarandon
Libérer: 2025-01-11 17:51:42
original
393 Les gens l'ont consulté

How to Implement Timeouts with WebClient.DownloadFile()?

Définition des délais d'attente pour WebClient.DownloadFile()

Le téléchargement de fichiers distants à l'aide de WebClient.DownloadFile() peut être lent, en particulier avec des fichiers inaccessibles. Un mécanisme de délai d'attente est crucial pour éviter les attentes indéfinies.

Mise en œuvre :

Le moyen le plus efficace d'implémenter un délai d'attente consiste à créer une classe personnalisée héritant de WebRequest. Cela permet de définir la propriété Timeout directement sur la requête sous-jacente. Voici un exemple :

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

Cette TimedWebClient classe fonctionne comme la classe standard WebClient, mais ajoute un délai d'attente configurable. Utilisez-le comme remplacement immédiat, en spécifiant le délai d'expiration en millisecondes. Cela garantit que toutes les tentatives de téléchargement respectent le délai d'attente défini, évitant ainsi de longs délais pour les fichiers indisponibles.

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