Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Melaksanakan Pemberitahuan Kemajuan Semasa Muat Turun Fail dengan HttpClient dalam .NET 4.5?
Gunakan .NET 4.5 HttpClient untuk melaksanakan pemberitahuan kemajuan muat turun fail
Dalam .NET 4.5, antara muka IProgress<T>
menyediakan cara untuk mengendalikan pelaporan kemajuan untuk operasi tak segerak dengan cekap. Ini membolehkan anda melaksanakan bar kemajuan atau elemen UI lain untuk memaklumkan pengguna tentang status muat turun.
Untuk menyesuaikan diri dengan senario muat turun fail, anda boleh menggunakan kaedah DownloadAsync
tersuai untuk melanjutkan kelas HttpClient
, yang mengandungi IProgress<T>
:
<code class="language-csharp">public static class HttpClientExtensions { public static async Task DownloadAsync(this HttpClient client, string requestUri, Stream destination, IProgress<float> progress = null, CancellationToken cancellationToken = default) { // ... 实现细节 ... } }</code>
Kaedah sambungan bergantung pada:
Kemajuan dijejaki dengan mengemas kini IProgress<long>
masuk. Kaedah sambungan penyalin strim ini melaporkan kemajuan dalam kemajuan muat turun:
<code class="language-csharp">public static class StreamExtensions { public static async Task CopyToAsync(this Stream source, Stream destination, int bufferSize, IProgress<long> progress = null, CancellationToken cancellationToken = default) { // ... 实现细节 ... } }</code>
Anda boleh menggunakan kaedah sambungan ini seperti berikut:
<code class="language-csharp">// 创建HTTP客户端 using (var client = new HttpClient()) { // 创建用于保存下载数据的文件 using (var file = new FileStream("download.dat", FileMode.Create)) { // 注册进度回调 var progress = new Progress<float>(p => Console.WriteLine($"Progress: {p * 100}%")); // 使用进度报告下载数据 await client.DownloadAsync(downloadUrl, file, progress); } }</code>
Pelanjutan ini membolehkan anda melaksanakan bar kemajuan semasa memuat turun fail melalui HTTP sambil memastikan data yang diminta daripada pelayan memerlukan sijil, manakala DownloadOperations
ciri ini tidak disokong.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Pemberitahuan Kemajuan Semasa Muat Turun Fail dengan HttpClient dalam .NET 4.5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!