Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menetapkan Tamat Masa untuk 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 Timeout
nya 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!