我在当前项目中使用TPL并使用Parallel.Foreach来旋转很多线程。 Task类包含Wait()以等待任务完成。那样,我该如何等待Parallel.ForEach完成,然后再执行下一个语句?我该如何等待Parallel.ForEach完成
78
A
回答
132
您不必做任何特殊的事情,Parallel.Foreach()
将等待,直到其所有分支任务完成。在调用线程中,您可以将其视为单个同步语句,并将其封装在try/catch中。
11
相关问题
- 1. 我该如何等待TTimer完成?
- 2. 如何等待CCCallBlock完成?
- 3. 如何等待SwingWorker完成?
- 4. 如何等待完成dataTaskWithRequest?
- 5. 如何等待sendBroadcast完成
- 6. 如何等待BackgroundWorker完成?
- 7. 如何等待Workbook.Close完成?
- 8. 如何等待ThreadPoolExecutor完成
- 9. 如何等待onActivityResult完成?
- 10. NSURLConnection - 如何等待完成
- 11. 我该如何等待完成另一课的asynctask?
- 12. Task.StartNew Parallel.ForEach不等待
- 13. 等待完成
- 14. 等待完成
- 15. servlet应该等待任务完成
- 16. 等待webworker完成
- 17. 等待NSURLSessionTask完成
- 18. jquery,等待完成
- 19. 等待IDBCursor.onsuccess完成
- 20. 等待ExecWB完成
- 21. 等待GUI完成
- 22. WebRequest.GetResponse等待完成
- 23. 等待BackgroundWorker完成?
- 24. 等待webrequest完成
- 25. 等待AsyncTask完成
- 26. delayed_job等待完成
- 27. 等待UIView完成
- 28. 等待shutil.copyfile完成
- 29. 等待SwingWorker完成
- 30. 等待$ .post完成
“Parallel.Foreach()将等到所有分支任务完成”,它可以在某些情况下混淆,如(异步任务内):Parallel.ForEach(groupedUnreadMessages, async unreadMsgCollection => {/ * works * /}); –
这里是其他问题在stackoverflow:http://stackoverflow.com/questions/11564506/nesting-await-in-parallell-foreach –
这个答案是从2011年,在async/await之前。但正如我所说的,在ForEach内部产生线程并不是一个好主意。也不是一个异步行动。您发布的链接提供了很好的信息和解决方案。 –