Mega Code Archive

 
Categories / C# by API / System Threading
 

New WaitHandle

using System; using System.Threading; class ThreadSleeper {     AutoResetEvent napDone = new AutoResetEvent(false);          public void Sleep()     {         Thread.Sleep(1000);         napDone.Set();     }          public static WaitHandle GetWaitHandle()     {         ThreadSleeper ts = new ThreadSleeper();         Thread thread = new Thread(new ThreadStart(ts.Sleep));         thread.Start();         return(ts.napDone);     } } class MainClass {     public static void Main()     {         WaitHandle[] waits = new WaitHandle[2];         waits[0] = ThreadSleeper.GetWaitHandle();         waits[1] = ThreadSleeper.GetWaitHandle();                  Console.WriteLine("Waiting for threads to finish");         WaitHandle.WaitAll(waits);         Console.WriteLine("Threads finished");     } }