主线程中使用了ThreadPool
         for (int i = starti; i < pShapes.Count; i++)
                {
                    ThreadPool.SetMaxThreads(20, 20);
                    WaitCallback w = new WaitCallback(AddExtremum);
                    ThreadPool.QueueUserWorkItem(w, i);                }
如果让主线程挂起直到ThreadPool中的线程运行完毕

解决方案 »

  1.   

    不知这样是否可以:class Program
    {
        static volatile bool flag = false;
        static void Main(string[] args)
        {
            
            ThreadPool.QueueUserWorkItem(new WaitCallback(
                delegate(object p)
                {
                    for (int i = 0; i < 5; i++)
                    {
                        Thread.Sleep(1000);
                        Console.WriteLine(i);
                    }
                    flag = true; 
                }));
            while (!flag) ;
            Console.WriteLine("Press Enter to end.");
            Console.ReadLine();
        }
    }
      

  2.   

    public void AddExtremum(object o)
    {
       //这里边加上ManulaResetEvent 类
       manul.Reset();
       .......
       manul.Set();
    }//然后主线程添加
      manul.waitOne();
      //子线程结束
      

  3.   

    有问题啊  如果我是往进程池中加入了很多进程怎么办
    你的程序只要flag为true,就会认为进程池中已经做完了