for (int i = 0; i < urlList.Count; i++)
                    {
                        //插入队列元素
                        ThreadPool.QueueUserWorkItem(new WaitCallback(StartGetWeatherinfo), urlList[i]);
                    }我在这里用了线程池,urlList是我需要采集的url,大概有3000个。
每次直接这么执行的时候,总是只有那么几十个url在处理着。
我怎么让所有url全部处理完后关闭线程池。

解决方案 »

  1.   

    我一个同事是使用Queue 而不是List
    处理一个弹出一个还有AutoResetEvent  你可以查查这方面的资料~
      

  2.   

    使用QueueUserWorkItem方法不能对进度进行报告,此时你可以采用。NEt 4.5中新提出的async和await,或者使用Task来进行操作,当所有操作完成时调用Task.continueWith方法
      

  3.   

    net4.5没玩过,在2.0中,我是用thread控制的,
    你这个是一下子开几千个线程啊,(当然实际开不起这么多),完全是不可控的,
    可以用栈来控制 ,完成一个后,才启动下一个