使用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方法调用才执行下步操作

}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM