【发布时间】:2010-06-16 04:09:21
【问题描述】:
我对并行计算还很陌生,所以我不太确定使用哪种工具来完成这项工作。
我有一个System.Threading.Tasks.Task,它需要等待 n 个任务完成才能开始。棘手的部分是它的一些依赖关系可能会在此任务启动后启动(保证在它们全部完成之前你永远不会命中 0 个依赖任务)。
这是正在发生的事情
- 父线程创建 1 到 (NUMBER_OF_CPU_CORES - 1) 个任务。
- 父线程创建要在所有工作任务完成后运行的任务。
- 父线程创建监控线程
- 监控线程可能会根据负载终止工作任务或生成新任务。
我可以弄清楚第 4 步之前的所有内容。如何让第 2 步中的任务等待运行,直到第 4 步中创建的任何新工作线程完成?
【问题讨论】:
-
您是否保留了当前活动任务的列表或计数?
-
当前活动的任务将在一个列表中
标签: multithreading .net-4.0 task