Open In App

C# | Getting the unique identifier for the current managed thread

Last Updated : 11 Jul, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report
A Thread class is responsible for creating and managing a thread in multi-thread programming. It provides a property known as ManagedThreadId to check the unique identifier for the current managed thread. Or in other words, the value of ManagedThreadId property of a thread defines uniquely that thread within its process. The value of the ManagedThreadId property does not vary according to time. Syntax:
public int ManagedThreadId { get; }
Return Value: This property returns a value that indicates a unique identifier for this managed thread. The return type of this property is System.Int32. Example 1: CSharp
// C# program to illustrate the 
// use of ManagedThreadId property
using System;
using System.Threading;

public class GFG {

    // Main Method
    static public void Main()
    {
        Thread T;

        // Get the reference of main Thread
        // Using CurrentThread property
        T = Thread.CurrentThread;

        // Display the unique id of the main 
        // thread Using ManagedThreadId property
        Console.WriteLine("The unique id of the main "+
                 "thread is: {0} ", T.ManagedThreadId);
    }
}
Output:
The unique id of the main thread is: 1 
Example 2: CSharp
// C# program to illustrate the 
// use of ManagedThreadId property
using System;
using System.Threading;

public class GFG {

    // Main method
    public static void Main()
    {
        // Creating and initializing threads
        Thread thr1 = new Thread(new ThreadStart(job));
        Thread thr2 = new Thread(new ThreadStart(job));
        Thread thr3 = new Thread(new ThreadStart(job));

        Console.WriteLine("ManagedThreadId of thread 1 "+
                        "is: {0}", thr1.ManagedThreadId);

        Console.WriteLine("ManagedThreadId of thread 2 "+
                        "is: {0}", thr2.ManagedThreadId);

        Console.WriteLine("ManagedThreadId of thread 3 "+
                        "is: {0}", thr3.ManagedThreadId);

        // Running state
        thr1.Start();
        thr2.Start();
        thr3.Start();
    }

    // Static method
    public static void job()
    {
        Thread.Sleep(2000);
    }
}
Output:
ManagedThreadId of thread 1 is: 3
ManagedThreadId of thread 2 is: 4
ManagedThreadId of thread 3 is: 5
Reference:

Similar Reads