Open In App

C# | How to check current state of a thread

Last Updated : 01 Feb, 2019
Improve
Improve
Like Article
Like
Save
Share
Report

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:



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads