我已經得到了下面的代碼,我只需要確保這是做到這一點的正確方法。它的工作原理和一切,但沒有預期的那麼快。我已經定時每個單獨的電話和最長的時間不是靠近運行所需時間的地方。我應該如何使用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