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>
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!