Thread.ManagedThreadId প্রপার্টি বর্তমান ম্যানেজড থ্রেডের অনন্য শনাক্তকারী রিটার্ন করে। এটি প্রসেস-লেভেল থ্রেড আইডি (OS thread ID) থেকে ভিন্ন। থ্রেড পুল থ্রেড এবং ম্যানুয়াল থ্রেড উভয়েরই আলাদা ManagedThreadId থাকে।
উদাহরণ ১: থ্রেড পুল এবং ম্যানুয়াল থ্রেড
using System;
using System.Threading;
public class Demo {
public static void Main(){
Thread thread = new Thread(new ThreadStart(demo1));
ThreadPool.QueueUserWorkItem(new WaitCallback(demo2));
Console.WriteLine("ManagedThreadId = " + thread.ManagedThreadId);
}
public static void demo1(){
Thread.Sleep(2000);
}
public static void demo2(object stateInfo){
Console.WriteLine("থ্রেড ম্যানেজড থ্রেড পুলের অন্তর্ভুক্ত? = " + Thread.CurrentThread.IsThreadPoolThread);
}
}
আউটপুট
ManagedThreadId = 3
থ্রেড ম্যানেজড থ্রেড পুলের অন্তর্ভুক্ত? = True
উদাহরণ ২: ম্যানুয়াল থ্রেড স্টার্ট
using System;
using System.Threading;
public class Demo {
public static void Main(){
Thread thread = new Thread(new ThreadStart(demo));
Console.WriteLine("ManagedThreadId = " + thread.ManagedThreadId);
thread.Start();
}
public static void demo(){
Console.WriteLine("থ্রেড ম্যানেজড থ্রেড পুলের অন্তর্ভুক্ত? = " + Thread.CurrentThread.IsThreadPoolThread);
}
}
আউটপুট
ManagedThreadId = 3
থ্রেড ম্যানেজড থ্রেড পুলের অন্তর্ভুক্ত? = False
ব্যবহার: ডিবাগিং, লগিং, এবং থ্রেড-স্পেসিফিক ডেটা স্টোরেজে ManagedThreadId ব্যবহার করা হয়। এটি প্রসেস জীবনচক্রে یونিক থাকে।