Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menetapkan Tamat Masa untuk WebClient.DownloadFile()?

Bagaimana untuk Menetapkan Tamat Masa untuk WebClient.DownloadFile()?

Susan Sarandon
Susan Sarandonasal
2025-01-11 17:41:41593semak imbas

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

Uruskan tamat masa WebClient.DownloadFile() dengan cekap

Menetapkan tamat masa untuk kaedah WebClient.DownloadFile() adalah penting untuk mengelakkan kelewatan yang lama apabila fail dimuat turun. Artikel ini akan meneroka penyelesaian yang cekap untuk menetapkan tamat masa untuk operasi ini.

Kami akan mencipta kelas terbitan yang dipanggil WebDownload yang mewarisi daripada kelas asas WebClient. Kelas tersuai akan memperkenalkan atribut Timeout, membolehkan kami menetapkan nilai tamat masa yang diingini.

Berikut ialah kod C# untuk kelas 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>

Dengan mengatasi kaedah GetWebRequest, kita boleh memintas objek WebRequest dan mengubah suai sifat Timeoutnya berdasarkan nilai tamat masa yang ditentukan oleh kelas tersuai. Sekarang, apabila menggunakan kelas WebDownload, anda hanya perlu memberikan tempoh tamat masa dalam milisaat semasa pemula.

Contohnya:

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

Ini akan memulakan muat turun fail dengan tamat masa 30 saat. Jika muat turun tidak dapat diselesaikan dalam tempoh masa ini, pengecualian akan dilemparkan, membolehkan anda mengendalikan situasi dengan anggun dan mengelakkan kelewatan yang tidak perlu.

Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Tamat Masa untuk WebClient.DownloadFile()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn