C#使用asycn/await模拟下载文件显示进度
时间: 2023-12-25 12:06:40 浏览: 64
C#下载文件显示下载进度及速度
5星 · 资源好评率100%
以下是使用async/await模拟下载文件并显示进度的C#代码示例:
```csharp
public async Task DownloadFileAsync(string url)
{
using var client = new WebClient();
var downloadTask = client.DownloadDataTaskAsync(url);
var stopwatch = Stopwatch.StartNew();
while (!downloadTask.IsCompleted)
{
Console.WriteLine($"Downloaded {client.ResponseBytesReceived} bytes in {stopwatch.ElapsedMilliseconds} ms");
await Task.Delay(1000);
}
stopwatch.Stop();
var data = await downloadTask;
Console.WriteLine($"Downloaded {data.Length} bytes in {stopwatch.ElapsedMilliseconds} ms");
}
```
在这个示例中,我们使用 `WebClient` 类下载文件。我们启动下载任务并启动一个计时器。然后我们循环检查任务是否完成,每秒钟输出下载进度。任务完成后,我们停止计时器并输出总下载时间和下载数据的大小。注意,我们使用 `await` 等待下载任务完成,以确保我们可以在任务完成后获取下载数据。
使用这个方法来下载文件并显示进度,只需调用 `DownloadFileAsync` 方法并传入下载文件的 URL。
阅读全文