C# में वर्तमान में मैनेज्ड थ्रेड के लिए अद्वितीय पहचानकर्ता प्राप्त करने के लिए, हम ManagedThreadId प्रॉपर्टी का उपयोग करते हैं। यह प्रॉपर्टी प्रत्येक मैनेज्ड थ्रेड के लिए एक अद्वितीय पूर्णांक पहचानकर्ता लौटाती है जिसका उपयोग डिबगिंग और लॉगिंग में किया जा सकता है। Thread क्लास System.Threading नेमस्पेस में स्थित है।
उदाहरण 1: नए थ्रेड और थ्रेड पूल आइटम का 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
उदाहरण 2: थ्रेड प्रारंभ करने के बाद ManagedThreadId
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प्रत्येक मैनेज्ड थ्रेड के लिए अद्वितीय होता है- यह ऑपरेटिंग सिस्टम थ्रेड आईडी से अलग है
- थ्रेड पूल थ्रेड्स का पुन: उपयोग करते हैं, इसलिए आईडी दोहरा सकती है
Thread.CurrentThread.ManagedThreadIdवर्तमान थ्रेड की आईडी देता है- यह प्रॉपर्टी केवल पढ़ने योग्य है
- डिबगिंग, लॉगिंग, और थ्रेड पहचान के लिए उपयोगी