C# में Thread.Name प्रॉपर्टी का उपयोग करके थ्रेड को एक पहचान नाम दिया जा सकता है, जो डीबगिंग और लॉगिंग में बहुत उपयोगी होता है।
उदाहरण
using System;
using System.Threading;
namespace Demo {
class MyClass {
static void Main(string[] args) {
Thread thread = Thread.CurrentThread;
thread.Name = "My Thread";
Console.WriteLine("Thread Name = {0}", thread.Name);
Console.ReadKey();
}
}
}
आउटपुट
Thread Name = My Thread
महत्वपूर्ण नियम
- एक बार सेट: थ्रेड का नाम केवल एक बार सेट किया जा सकता है। दूसरी बार सेट करने पर
InvalidOperationExceptionफेंका जाता है। - डिफॉल्ट: नाम डिफॉल्ट रूप से
nullहोता है। - थ्रेड निर्माण के समय: कंस्ट्रक्टर में नाम पास कर सकते हैं:
Thread thread = new Thread(DoWork) {
Name = "WorkerThread"
};
डीबगिंग में उपयोगिता
- Visual Studio डिबगर में "Threads" विंडो में नाम दिखता है।
- लॉग्स में थ्रेड पहचान आसान होती है:
Thread.CurrentThread.Name - डेडलॉक/रेस कंडीशन विश्लेषण में मदद करता है।
नामकरण सम्मेलन (Best Practices)
// अच्छे नाम "UI Thread" "DB-Worker-1" "FileDownload-Worker" "Background-Sync-Task" // खराब नाम "Thread1" "t" "myThread"
सभी चल रहे थ्रेड्स के नाम देखना (डीबगिंग)
foreach (Thread t in Process.GetCurrentProcess().Threads) {
Console.WriteLine($"Thread ID: {t.Id}, Name: {t.Name ?? "(unnamed)"}");
}