使用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