Thread.ThreadState প্রপার্টি ব্যবহার করে থ্রেডের বর্তমান অবস্থা (Unstarted, Running, WaitSleepJoin, Stopped, Aborted ইত্যাদি) জানা যায়। 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("থ্রেডের বর্তমান অবস্থা = " + thread.ThreadState);
Console.WriteLine("ManagedThreadId = " + thread.ManagedThreadId);
}
public static void demo1(){
Thread.Sleep(2000);
}
public static void demo2(object stateInfo){
Console.WriteLine("থ্রেড ম্যানেজড থ্রেড পুলের অন্তর্ভুক্ত? = " + Thread.CurrentThread.IsThreadPoolThread);
}
}
আউটপুট
থ্রেডের বর্তমান অবস্থা = Unstarted
ManagedThreadId = 3
উদাহরণ ২: থ্রেড স্টার্ট করার পর অবস্থা
using System;
using System.Threading;
public class Demo {
public static void Main(){
Thread thread = new Thread(new ThreadStart(demo));
Console.WriteLine("ManagedThreadId = " + thread.ManagedThreadId);
Console.WriteLine("থ্রেডের বর্তমান অবস্থা = " + thread.ThreadState);
thread.Start();
Console.WriteLine("থ্রেডের বর্তমান অবস্থা = " + thread.ThreadState);
}
public static void demo(){
Console.WriteLine("থ্রেড ম্যানেজড থ্রেড পুলের অন্তর্ভুক্ত? = " + Thread.CurrentThread.IsThreadPoolThread);
}
}
আউটপুট
ManagedThreadId = 3
থ্রেডের বর্তমান অবস্থা = Unstarted
থ্রেড ম্যানেজড থ্রেড পুলের অন্তর্ভুক্ত? = False
থ্রেডের বর্তমান অবস্থা = Running
মূল অবস্থা: Unstarted, Running, WaitSleepJoin, Suspended, Aborted, Stopped। থ্রেড স্টার্ট করার আগে অবস্থা Unstarted, স্টার্ট করার পর Running।