获取活动线程计数和队列中的线程

时间:2012-12-13 16:49:36

标签: c# multithreading parallel-processing threadpool

这是我的应用程序的快速伪 ImageDT是一个DataTable

Parallel.ForEach(ImageDT.AsEnumerable(), row =>
{
    if (a1 != a2)
    {
        ThreadPool.QueueUserWorkItem(Foo1, row["foo"])
    }
    else 
    {
        ThreadPool.QueueUserWorkItem(Foo2, row["foo"])
    }
}

我需要知道有多少线程处于活动状态,以及有多少线程为Parallel和ThreadPool排队。

由于

1 个答案:

答案 0 :(得分:1)

跟踪几个共享整数,“排队”和“活动”。增量排队WorkItem时排队。当您的回调方法启动时,让它减少Queued并增加Active。当回调退出时,减少Active。