none
怎样确定线程池中各线程的状态? RRS feed

答案

  • 您好,
    1、可以通过ThreadPool.GetMaxThreads 减ThreadPool.GetAvailableThreads来获得当前的workerThreads的数目。
    2、通常线程执行完后,会自动退出。可以在WaitCallback设计一个异常捕获机制。
    2009年8月24日 12:16
  • Hi,
    1、I think so. one app one threadpool.
    2、I think so too.

    • 已标记为答案 picat 2009年8月25日 2:23
    2009年8月24日 15:58

全部回复

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

    • 已标记为答案 picat 2009年8月25日 2:23
    2009年8月24日 15:58
  •    谢谢Jiyuan的答复,这下有点搞懂了,哈哈
    2009年8月25日 2:24
  • 不客气,互相交流!:)
    2009年8月25日 4:26