.NET多線程編程之CountdownEvent使用
簡單來說,使用這個類可以讓主線程等待子線程都完成任務之后才執(zhí)行任務
1 static void Main(string[] args) 2 { 3 ///子任務的數(shù)量 4 CountdownEvent countdownEvent = new CountdownEvent(3); 5 for(int i = 0;i < 3; i++) 6 { 7 ThreadPool.QueueUserWorkItem(state => 8 { 9 Thread.Sleep(1000 * new Random().Next(1, 2)); 10 //發(fā)出信號,表明工作已完成 11 countdownEvent.Signal(); 12 MessageBox.Show($"{Thread.CurrentThread.ManagedThreadId} 完成"); 13 }); 14 } 15 //在所有子任務完成之前,調(diào)用線程將被阻塞 16 countdownEvent.Wait(); 17 MessageBox.Show("全部工作完成"); 18 }
知其然,而后知其所以然。

浙公網(wǎng)安備 33010602011771號