How can I wait till the Parallel.ForEach completes

前端 未结 3 1635
轮回少年
轮回少年 2020-12-15 02:16

I\'m using TPL in my current project and using Parallel.Foreach to spin many threads. The Task class contains Wait() to wait till the task gets completed. Like that, how I c

相关标签:
3条回答
  • 2020-12-15 02:41

    As everyone here said - you dont need to wait for it. What I can add from my experience: If you have an async body to execute and you await some async calls inside, it just ran through my code and did not wait for anything. So I just replaced the await with .Result - then it worked as intended. I couldnt find out though why is that so :/

    0 讨论(0)
  • 2020-12-15 02:42

    You don't need that with Parallel.Foreach: it only executes the foreach in as many thread as there are processors available, but it returns synchronously.

    More information can be found here

    0 讨论(0)
  • 2020-12-15 02:53

    You don't have to do anything special, Parallel.Foreach() will wait until all its branched tasks are complete. From the calling thread you can treat it as a single synchronous statement and for instance wrap it inside a try/catch.

    0 讨论(0)
提交回复
热议问题