gpt4 book ai didi

c# - 使用异步任务下载图像

转载 作者:行者123 更新时间:2023-12-02 11:12:26 24 4
gpt4 key购买 nike

我想使用C#中的Task同时从网站下载一些图片。当调用WaitAll()时应用程序挂起。这是我的代码:

HttpClient client = new HttpClient() { MaxResponseContentBufferSize = 1000000 };

List<Task<byte[]>> tasks = new List<Task<byte[]>>();

for (int i = 0; i < 10; i++)
{
string url = string.Format("http://www.myurl.com/files//53/{0}page.jpg",i);
Task<byte[]> download = ProcessURLAsync(url, client);
tasks.Add(download);
}

Task.WaitAll(tasks.ToArray());

以及 ProcessURLAsync 方法:

async Task<byte[]> ProcessURLAsync(string url, HttpClient client)
{
var byteArray = await client.GetByteArrayAsync(url);
return byteArray;
}

最佳答案

使用await Task.WhenAll(tasks);,因为Task.WaitAll会阻塞调用线程。

顺便说一下,您可以使用 HttpClient 的同一实例:) 它是为多个并发请求而设计的。见http://msdn.microsoft.com/en-us/library/system.net.http.httpclient(v=vs.110).aspx备注部分

关于c# - 使用异步任务下载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22078017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com