我们可以在TPL中通过名称或ID读取正在运行的任务的数量
本文关键字:读取 ID 运行 任务 TPL 我们 | 更新日期: 2023-09-27 18:14:31
我正在尝试使用新的TPL .net库而不是线程。我们有一个特定的情况,在启动新任务之前,我们想要确定是否已经有最大数量的任务(假设有10个)使用我们的自定义名称/id运行。
这是可能的吗?或者我需要在Tasks[]中维护它吗?
这是理论流程,我们有3种不同的优先级工作。P1优先级最高,p3优先级最低。下表显示了将在系统中发生的流程。
希望这是有意义的。
Running Threads P1 Jobs Pending P2 Jobs Pending P3 Jobs Pending Result
0 5 1 1 Start 7 tasks
7 0 1 2 Start 3 additional tasks
10 0 0 1 Wait for thread to free up
你可以使用LimitedConcurrencyLevelTaskScheduler类来限制并发任务的数量。在循环中,这些任务应该按照优先级顺序(每个优先级类型对应一个队列)从三个队列中的一个中获取作业