- For example ,wait 10 threads terminate
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Console.WriteLine(DateTime.Now.ToString()); int j = 10; WaitHandle[] waitHandles = new WaitHandle[j]; for (int i = 0; i < j; i++) { waitHandles[i] = new ManualResetEvent(false); //object[] parameters = new object[] { waitHandles[i] }; Thread oThreadone = new Thread(new ParameterizedThreadStart(Work2)); //Thread oThreadone = new Thread(Work2); oThreadone.Start(waitHandles[i]); } EventWaitHandle.WaitAll(waitHandles); Console.WriteLine(DateTime.Now.ToString()); Console.ReadLine(); |
- thread function :
1 2 3 4 |
static void Work2(object obj) { .... } |