C#-এ একটি থ্রেড (thread) হলো একটি প্রোগ্রামের এক্সিকিউশন পাথ। প্রতিটি থ্রেড کنترলের একটি অনন্য প্রবাহ নির্ধারণ করে। থ্রেডের লাইফসাইকেল শুরু হয় System.Threading.Thread ক্লাসের অবজেক্ট তৈরি হলে এবং শেষ হয় থ্রেড টার্মিনেট বা এক্সিকিউশন কমপ্লিট হলে।
থ্রেডের különböző স্টেটসমূহ
১. Unstarted State (অনআরম্ভড স্টেট)
যখন থ্রেডের ইনস্ট্যান্স তৈরি হয় কিন্তু Start() মেথড কল করা হয়নি।
২. Ready State (রেডি স্টেট)
থ্রেড রান করার জন্য প্রস্তুত এবং CPU সাইকেলের জন্য অপেক্ষায় আছে।
৩. Not Runnable State (নন-রানেবল স্টেট)
থ্রেড এক্সিকিউটেবল নয় যখন:
Sleep()মেথড কল করা হয়েছেWait()মেথড কল করা হয়েছে- I/O অপারেশন দ্বারা ব্লক করা হয়েছে
৪. Dead State (ডেড স্টেট)
যখন থ্রেড এক্সিকিউশন কমপ্লিট করে বা অ্যাবর্ট (abort) করা হয়।
নোট: আধুনিক C#-এ (async/await, Task, ThreadPool) কাঁচা থ্রেড ম্যানেজমেন্টের চেয়ে হাই-লেভেল এবস্ট্রাকশন ব্যবহার করা প্রস্তাবিত।