积极答复者
怎样确定线程池中各线程的状态?

问题
答案
-
您好,
1、可以通过ThreadPool.GetMaxThreads 减ThreadPool.GetAvailableThreads来获得当前的workerThreads的数目。
2、通常线程执行完后,会自动退出。可以在WaitCallback设计一个异常捕获机制。- 已标记为答案 feiyun0112Moderator 2009年8月25日 1:23
全部回复
-
您好,
1、可以通过ThreadPool.GetMaxThreads 减ThreadPool.GetAvailableThreads来获得当前的workerThreads的数目。
2、通常线程执行完后,会自动退出。可以在WaitCallback设计一个异常捕获机制。- 已标记为答案 feiyun0112Moderator 2009年8月25日 1:23
-
谢谢Jiyuan.
对线程池还有些不明白的地方:
1:同一个程序能不能使用2个或两个以上的线程池?因为使用线程池的时候都是在System.Threading.ThreadPool.QueueUserWorkItem里添加队列的.这是不是也就意味着如果使用了线程池,所有的过程队列都只能加入到同一个池里?
2:如果第一点成立,那么通过ThreadPool.GetMaxThreads 减ThreadPool.GetAvailableThreads来获得当前的workerThreads的数目,如果这个差值为0,是不是就代表所有线程池中的线程已经退出?也就可以代表所有添加到池中的任务已经完成(不管成功与否)?