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:
// 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:
// 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: