Managing Threads : Thread Monitor Manage « Thread « C# / C Sharp





Managing Threads

Managing Threads
/*
 * C# Programmers Pocket Consultant
 * Author: Gregory S. MacBeth
 * Email: gmacbeth@comporium.net
 * Create Date: June 27, 2003
 * Last Modified Date:
 * Version: 1
 */
using System;
using System.Threading;

namespace Client.Chapter_15___Threading
{
  public class ManagingThreads
  {
    public AutoResetEvent A = new AutoResetEvent(false);
    public AutoResetEvent[] B = new AutoResetEvent[3];
    public static int Main()
    {
      ManagingThreads M = new ManagingThreads();

      M.InitEvents();

      Thread T = new Thread(new ThreadStart(M.MyNewThread));

      T.Start();

      //T.Join();  //Blocks this thread until T Stops
      Console.WriteLine("Waiting!");
      M.A.WaitOne();
      WaitHandle.WaitAll(M.B);
      return 0;
    }
    public void InitEvents()
    {
      for (int i = 0; i < 3; i++)
      {
        B[i] = new AutoResetEvent(false);
      }
    }
    public void MyNewThread()
    {
      Console.WriteLine("MyNewThread Called");
      A.Set();
      B[0].Set();
      B[1].Set();
      B[2].Set();
    }
  }
}

           
       










Related examples in the same category

1.Threading Class Monitor
2.illustrates the use of the Monitor objectillustrates the use of the Monitor object
3.Control the main threadControl the main thread