我遇到了parallel.foreach和异步组合的问题。 这是我的代码 -
new Thread(() =>{
//doing some stuff here
Parallel.ForEach(.....,ParallelOption,async(j,loopState) =>
{
//await some stuff here like:
// HttpResponseMessage res = await httpClient.GetAsync(url);
// UpdateUI
}
}).Start();
现在,我的问题是如何确定循环已完成所有工作?它只是在几秒钟内结束,但UIUpdateing将继续更长的时间。
如何等待await httpClient.GetAsync(url)
完成然后更新UI?
答案 0 :(得分:2)
Using async/await for multiple tasks
return Task.WhenAll(ids.Select(i => DoSomething(1, i, blogClient)));
我不知道你的实际循环代码中有什么。如果你把它放得更多,我可以使它更具体。基本上,虽然你使用WhenAll来等待所有的ascnc tasksf