A Thread class is responsible for creating and managing a thread in multi-thread programming. It provides a property known as ThreadState to check the current state of the thread. The initial state of a thread is Unstarted state.
Syntax:
public ThreadState ThreadState{ get; }
Return Value: This property returns the value that indicates the state of the current thread.
Below programs illustrate the use of ThreadState property:
Example 1:
// C# program to illustrate the // use of ThreadState property using System;
using System.Threading;
public class GFG {
// Main Method
static public void Main()
{
Thread thr;
// Get the reference of main Thread
// Using CurrentThread property
thr = Thread.CurrentThread;
// Display the current state
// of the main thread
Console.WriteLine( "The name of the current state of the Main " + "thread is: {0}" , thr.ThreadState);
}
} |
Output:
The name of the current state of the main thread is: Running
Example 2:
// C# program to illustrate the // use of ThreadState property using System;
using System.Threading;
public class GFG {
// Main method
public static void Main()
{
// Creating and initializing threads
Thread TR1 = new Thread( new ThreadStart(job));
Thread TR2 = new Thread( new ThreadStart(job));
Console.WriteLine( "ThreadState of TR1 thread" +
" is: {0}" , TR1.ThreadState);
Console.WriteLine( "ThreadState of TR2 thread" +
" is: {0}" , TR2.ThreadState);
// Running state
TR1.Start();
Console.WriteLine( "ThreadState of TR1 thread " +
"is: {0}" , TR1.ThreadState);
TR2.Start();
Console.WriteLine( "ThreadState of TR2 thread" +
" is: {0}" , TR2.ThreadState);
}
// Static method
public static void job()
{
Thread.Sleep(2000);
}
} |
Output:
ThreadState of TR1 thread is: Unstarted ThreadState of TR2 thread is: Unstarted ThreadState of TR1 thread is: Running ThreadState of TR2 thread is: WaitSleepJoin
Reference: