我已经得到了下面的代码,我只需要确保这是做到这一点的正确方法。它的工作原理和一切,但没有预期的那么快。我已经定时每个单独的电话和最长的时间不是靠近运行所需时间的地方。我应该如何使用Task When All?
public async Task<Result[]> DoSomethingGoodAsync()
{
List<Product> productList = getproducts();
IEnumerable<Task<Result>> list =
from p in productList select DoSomethingAsync(p);
Task<Result>[] slist = list.ToArray();
return await Task.WhenAll(slist);
}
现在我的问题再次出现,这是正确的吗?有没有更好更有效的方法来做到这一点? DoSomethingAsync是一个等待方法,它也调用另一个异步方法。
编辑:我的问题。这是建立一个我想一起执行的等待方法的集合的正确方法吗?
内部DoSomethingAysnc()
scrapeResult = await UrlScraper.ScrapeAsync(product.ProductUrl);
model = this.ProcessCheckStock(model, scrapeResult, product);
你确定这段时间没有被调用getproducts();在开始时? –
getproducts看起来像什么? – casperOne