c# curl如何实现多线程下载

   2024-10-07 9610
核心提示:在C#中,可以使用HttpClient类和Task类来实现多线程下载。以下是一个简单的示例代码,演示如何使用多线程下载多个文件:using Sy

在C#中,可以使用HttpClient类和Task类来实现多线程下载。以下是一个简单的示例代码,演示如何使用多线程下载多个文件:

using System;using System.Net.Http;using System.Threading.Tasks;class Program{    static async Task Main(string[] args)    {        string[] urls = { "url1", "url2", "url3" }; // 定义要下载的文件URL        var tasks = new Task[urls.Length];        for (int i = 0; i < urls.Length; i++)        {            tasks[i] = DownloadFile(urls[i]);        }        await Task.WhenAll(tasks);        Console.WriteLine("All files downloaded successfully.");    }    static async Task DownloadFile(string url)    {        using (var client = new HttpClient())        {            var response = await client.GetAsync(url);            if (response.IsSuccessStatusCode)            {                var fileName = url.Substring(url.LastIndexOf('/') + 1);                using (var fileStream = System.IO.File.Create(fileName))                {                    await response.Content.CopyToAsync(fileStream);                }                Console.WriteLine($"File {fileName} downloaded successfully.");            }            else            {                Console.WriteLine($"Failed to download file from {url}. Status code: {response.StatusCode}");            }        }    }}

在上面的代码中,我们通过Task类创建了多个下载文件的任务,并使用Task.WhenAll方法等待所有任务完成。每个下载任务都使用HttpClient类来发送HTTP请求并下载文件。当所有文件下载完成后,会输出"All files downloaded successfully."。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号