Csharp/C Sharp by API/System.Threading/WaitHandle

Материал из .Net Framework эксперт
Версия от 15:08, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

new WaitHandle

<source lang="csharp"> 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");
   }

}


 </source>