Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Melaksanakan Tamat Masa dalam WebClient.DownloadFile() untuk Mencegah Penantian Tidak Tentu?

Bagaimanakah Saya Boleh Melaksanakan Tamat Masa dalam WebClient.DownloadFile() untuk Mencegah Penantian Tidak Tentu?

Patricia Arquette
Lepaskan: 2025-01-11 17:36:41
asal
572 orang telah melayarinya

How Can I Implement Timeouts in WebClient.DownloadFile() to Prevent Indefinite Waits?

Mengendalikan Tamat Masa dengan WebClient.DownloadFile()

Menggunakan WebClient.DownloadFile() untuk muat turun fail kadangkala boleh mengakibatkan kelewatan yang tidak pasti disebabkan masalah rangkaian atau sumber yang tidak boleh diakses. Untuk mengelakkan ini, melaksanakan mekanisme tamat masa adalah penting.

Membuat Kelas Pelanggan Web Tersuai

Penyelesaian adalah untuk mencipta kelas tersuai yang diwarisi daripada WebClient, membolehkan anda menetapkan nilai tamat masa untuk WebRequest asas. Begini caranya:

<code class="language-csharp">using System;
using System.Net;

public class TimedWebClient : WebClient
{
    public int TimeoutMilliseconds { get; set; }

    public TimedWebClient() : this(60000) { } // Default timeout: 60 seconds

    public TimedWebClient(int timeoutMilliseconds)
    {
        TimeoutMilliseconds = timeoutMilliseconds;
    }

    protected override WebRequest GetWebRequest(Uri address)
    {
        var request = base.GetWebRequest(address);
        if (request != null)
        {
            request.Timeout = TimeoutMilliseconds;
        }
        return request;
    }
}</code>
Salin selepas log masuk

Menggunakan Kelas Tersuai

Tersuai ini TimedWebClient boleh digunakan sama seperti standard WebClient:

<code class="language-csharp">// Set a 30-second timeout
var timedClient = new TimedWebClient(30000);

// Download the file
timedClient.DownloadFile("http://example.com/file.zip", "localfile.zip");</code>
Salin selepas log masuk

Pendekatan ini memastikan muat turun fail ditamatkan selepas tamat masa yang ditentukan, menghalang aplikasi anda daripada digantung selama-lamanya disebabkan oleh isu rangkaian atau akses. Tamat masa ditetapkan dalam milisaat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Tamat Masa dalam WebClient.DownloadFile() untuk Mencegah Penantian Tidak Tentu?. 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