C# 如何知道线程池待办事项列表中排队的项目数

C# 如何知道线程池待办事项列表中排队的项目数,c#,.net,multithreading,threadpool,scalability,C#,.net,Multithreading,Threadpool,Scalability,我正在设计一个高可扩展的应用程序。它将有许多处理节点,这些节点从公共队列中获取任务并对其进行处理 我的想法是在每个节点中都有一个线程,它从任务队列中读取数据并启动一个任务来完成工作 我的问题是如何限制每个节点中排队任务的数量,因为它只取决于创建任务的线程的速度,而不取决于节点的当前负载。 如何知道线程池中排队的项目数? 如何公平分配任务 感谢您的时间。开始时从公共队列创建的每个任务都应该是互锁的。增加变量QueuedTaskCount,开始时的每个任务都应该是互锁的。减少相同的变量。变量Queu

我正在设计一个高可扩展的应用程序。它将有许多处理节点,这些节点从公共队列中获取任务并对其进行处理

我的想法是在每个节点中都有一个线程,它从任务队列中读取数据并启动一个任务来完成工作

我的问题是如何限制每个节点中排队任务的数量,因为它只取决于创建任务的线程的速度,而不取决于节点的当前负载。 如何知道线程池中排队的项目数? 如何公平分配任务


感谢您的时间。

开始时从公共队列创建的每个任务都应该是互锁的。增加变量QueuedTaskCount,开始时的每个任务都应该是互锁的。减少相同的变量。变量QueuedTaskCount现在包含排队任务的数量。

看看“处理节点”是什么意思?如果它们只是单个共享内存系统中的处理器,那么您应该依赖于任务并行库的默认调度程序,它可以为您处理所有这些问题。启动任务前调用Wait(),任务完成后调用Release()。构造函数中指定了允许的未完成任务的数量。