C# TaskScheduler仍需要处理的任务数

C# TaskScheduler仍需要处理的任务数,c#,task-parallel-library,task,C#,Task Parallel Library,Task,我有一个服务器池,用于负载平衡一些工作。这项工作被划分在离散的工作项中,但是不可能确定一个给定的工作项需要多少时间 每个服务器都使用TPL来安排工作项上的工作。 要真正实现工作负载平衡,我需要能够确定每个服务器有多少工作项处于挂起状态 我只需要获取默认TaskScheduler的计划工作项数。理想情况下,我可以使用,但这种方法是受保护的 一个显而易见的解决方案是编写自己的自定义调度程序并公开调度任务的数量。这远远不是理想的解决方案,因为我所需要的只是这个数字,实际上,我不会编写像默认的那样好的T

我有一个服务器池,用于负载平衡一些工作。这项工作被划分在离散的工作项中,但是不可能确定一个给定的工作项需要多少时间

每个服务器都使用TPL来安排工作项上的工作。 要真正实现工作负载平衡,我需要能够确定每个服务器有多少工作项处于挂起状态

我只需要获取默认TaskScheduler的计划工作项数。理想情况下,我可以使用,但这种方法是受保护的

一个显而易见的解决方案是编写自己的自定义调度程序并公开调度任务的数量。这远远不是理想的解决方案,因为我所需要的只是这个数字,实际上,我不会编写像默认的那样好的TaskScheduler。 我找不到默认任务计划程序的实现。如果我能,也许我能从中继承? 有没有办法解决这个问题

我只需要获取默认TaskScheduler的计划工作项数


只需添加一个计数器,在计划新任务时递增,在任务完成时递减即可。别忘了使用make it thread safe,例如使用。

更具体地说,我需要跟踪创建的任务并检查它们的属性。我没有任何其他方法来确定实际任务或任何任务何时完成。