illustrates the ThreadState property : Thread Properties : Thread C# Source Code


Custom Search

C# Source Code » Thread » Thread Properties »

 

illustrates the ThreadState property









    

/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy

Publisher: Sybex;
ISBN: 0782129110
*/

/*
  Example14_3.cs illustrates the ThreadState property
*/

using System;
using System.Threading;

public class Example14_3 
{

  // the Countdown method counts down from 10 to 1
  public static void Countdown() 
  {
    for (int counter = 10; counter > 0; counter--) 
    {
      Console.Write(counter.ToString() + " ");
    }
    Console.WriteLine();
  }

  // the DumpThreadState method displays the current Thread's state
  // Note that ThreadState is a bitmask, and multiple states for the
  // same thread are valid
  public static void DumpThreadState (
    Thread t
    ) 
  {
    Console.Write("Current state: ");
    if ((t.ThreadState & ThreadState.Aborted) == ThreadState.Aborted)
      Console.Write("Aborted ");
    if ((t.ThreadState & ThreadState.AbortRequested) == 
     ThreadState.AbortRequested)
      Console.Write("AbortRequested ");
    if ((t.ThreadState & ThreadState.Background) == 
     ThreadState.Background)
      Console.Write("Background ");
    if ((t.ThreadState & 
     (ThreadState.Stopped | ThreadState.Unstarted | 
     ThreadState.Aborted)) == 0)
      Console.Write("Running ");
    if ((t.ThreadState & ThreadState.Stopped) == ThreadState.Stopped)
      Console.Write("Stopped ");
    if ((t.ThreadState & ThreadState.StopRequested) == 
     ThreadState.StopRequested)
      Console.Write("StopRequested ");
    if ((t.ThreadState & ThreadState.Suspended) == 
     ThreadState.Suspended)
      Console.Write("Suspended ");
    if ((t.ThreadState & ThreadState.SuspendRequested) == 
     ThreadState.SuspendRequested)
      Console.Write("SuspendRequested ");
    if ((t.ThreadState & ThreadState.Unstarted) == 
     ThreadState.Unstarted)
      Console.Write("Unstarted ");
    if ((t.ThreadState & ThreadState.WaitSleepJoin) ==
     ThreadState.WaitSleepJoin)
      Console.Write("WaitSleepJoin ");
    Console.WriteLine();
  }

  public static void Main() 
  {

    // create a second thread
    Thread t2 = new Thread(new ThreadStart(Countdown));
    DumpThreadState(t2);

    // launch the second thread
    t2.Start();
    DumpThreadState(t2);

    // and meanwhile call the Countdown method from the first thread
    Countdown();

    // shut down the second thread
    t2.Abort();
    DumpThreadState(t2);

  }

}


           
       
    
   
  
   







HTML code for linking to this page:

Follow Navioo On Twitter

C# Source Code

 Navioo Thread
» Thread Properties