C# - Parallel.ForEach和Async组合

时间:2017-09-14 05:36:12

标签: c#

我遇到了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?

1 个答案:

答案 0 :(得分:2)

Using async/await for multiple tasks

return Task.WhenAll(ids.Select(i => DoSomething(1, i, blogClient)));

我不知道你的实际循环代码中有什么。如果你把它放得更多,我可以使它更具体。基本上,虽然你使用WhenAll来等待所有的ascnc tasksf