Mega Code Archive

 
Categories / C# Tutorial / Thread
 

ThreadState property

using System; using System.Threading; class MainClass {   public static void Countdown()    {     for (int i = 10; i > 0; i--)  {       Console.Write(i.ToString() + " ");     }   }   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 ");   }   public static void Main()    {     Thread t2 = new Thread(new ThreadStart(Countdown));     DumpThreadState(t2);     t2.Start();     DumpThreadState(t2);     Countdown();     t2.Abort();     DumpThreadState(t2);   } } Current state: Unstarted 10 9 8 7 6 5 4 3 2 1 Current state: Stopped 10 9 8 7 6 5 4 3 2 1 Current st ate: Stopped