任务不是异步下载

时间:2019-05-26 20:57:45

标签: c# asynchronous

我正在尝试从多个来源异步下载字符串(xml),并等待所有操作完成。

但是当使用Task.Factory.StartNew创建多个任务时,它们似乎都同步下载,一个接一个。所有组合的字符串应权重大约。 200kb,所以对于我的Internet连接来说应该不是一个问题,它每秒可以下载640kb。

这是我正在使用的代码:

var taskList = new List<Task>();

foreach (var feed in feeds)
    taskList.Add(Task.Factory.StartNew(() => DownloadFeed(feed)));

Task.WaitAll(taskList.ToArray());

下载方法:

void DownloadFeed(string url)
{
    using (Webclient client = new WebClient())
      concurrentBag.Add(client.DownloadString(url));
}

WebClient的异步方法可以正常工作,它们异步下载,从而将总下载时间缩短到一小部分。尽管这对于我的项目应该足够好,但是我仍然很好奇使用Tasks的代码有什么问题?

0 个答案:

没有答案