使用ThreadPool.QueueUserWorkItem线程池

 

public static void mian(string[] args){

  int threadNum=10;

  ManualResetEvent[] _ManualEvents = new ManualResetEvent[threadNum];//控制信号

  for (int i = 0; i < threadNum; i++)
  { 

    _ManualEvents[i] = new ManualResetEvent(false);

      ThreadPool.QueueUserWorkItem(new WaitCallback(CallBack), _ManualEvents[i] );  //参数可选  开启一个线程

  }

  WaitHandle.WaitAll(_ManualEvents);//线程池执行完毕进行主线程

  Console.WriteLine(“全部线程执行结束”);

}

//回调函数

public void CallBack(object obj){

   ManualResetEvent e =(ManualResetEvent )obj;  

  for(int i = 0; i < 10; i++){

          Console.WriteLine($“这是第{i}次打印”);

  }

   e.Set();//set方法调用才执行下步操作

}

posted @ 2019-09-20 17:08  我脑壳疼胸口闷  阅读(4218)  评论(0编辑  收藏  举报