所以我的问题如下:我有一个要处理的项目列表,我想并行处理这些项目,然后提交已处理的项目。
C# 中的屏障类将允许我执行此操作 - 我可以并行运行线程来处理项目列表,当调用 SignalAndWait 并且所有参与者都遇到障碍时,我可以提交已处理的项目。
Task 类也将允许我执行此操作 - 在 Task.WaitAll 调用中,我可以等待所有任务完成并且可以提交已处理的项目。如果我理解正确,每个任务都将在它自己的线程上运行,而不是在同一个线程上并行运行一堆任务。
- 我对问题的两种用法的理解是否正确?
- 两者之间有什么优势吗?
- 有什么混合解决方案更好的方法(障碍和任务?)。