gpt4 book ai didi

c# - 我们可以在 TPL 中按名称或 ID 读取正在运行的任务数吗?

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:46 26 4
gpt4 key购买 nike

我正在尝试使用新的 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用于限制并发任务数的类。在一个循环中,这些任务应该从三个 queues 中的一个中获取工作。按照他们的优先级顺序(每个优先级一个队列)

关于c# - 我们可以在 TPL 中按名称或 ID 读取正在运行的任务数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32772999/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com