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

Bagaimana untuk Melaksanakan Tamat Masa dengan WebClient.DownloadFile()?

Susan Sarandon
Lepaskan: 2025-01-11 17:51:42
asal
391 orang telah melayarinya

How to Implement Timeouts with WebClient.DownloadFile()?

Menetapkan Masa tamat untuk WebClient.DownloadFile()

Memuat turun fail jauh menggunakan WebClient.DownloadFile() boleh menjadi perlahan, terutamanya dengan fail yang tidak boleh diakses. Mekanisme tamat masa adalah penting untuk mengelakkan penantian yang tidak pasti.

Pelaksanaan:

Cara paling berkesan untuk melaksanakan tamat masa ialah dengan mencipta kelas tersuai yang diwarisi daripada WebRequest. Ini membenarkan menetapkan harta Timeout terus pada permintaan asas. Berikut ialah contoh:

<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>
Salin selepas log masuk

Kelas TimedWebClient ini berfungsi seperti standard WebClient, tetapi menambah tamat masa yang boleh dikonfigurasikan. Gunakannya sebagai pengganti drop-in, menyatakan tamat masa dalam milisaat. Ini memastikan bahawa semua percubaan muat turun mematuhi tamat masa yang ditetapkan, menghalang kelewatan yang lama untuk fail yang tidak tersedia.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan