फ़ंक्शन के प्रकार "समर्थन के लिए लॉग जानकारी" के लिए मैं सक्रिय थ्रेड जानकारी को गणना और डंप करना चाहता हूं।.NET में वर्तमान में सक्रिय प्रबंधित थ्रेड की सूची प्राप्त करना?
मैं इस तथ्य से अच्छी तरह से अवगत हूं कि दौड़ की स्थिति इस जानकारी को अर्द्ध-गलत बना सकती है, लेकिन मैं सर्वोत्तम संभव परिणाम प्राप्त करने का प्रयास करना चाहता हूं, भले ही यह 100% सटीक न हो।
मैंने प्रक्रिया को देखा। थ्रेड, लेकिन यह प्रोसेस थ्रेड ऑब्जेक्ट्स लौटाता है, मैं थ्रेड ऑब्जेक्ट्स का संग्रह करना चाहता हूं, ताकि मैं उनका नाम लॉग कर सकूं, और वे पृष्ठभूमि धागे हैं या नहीं।
क्या ऐसा कोई संग्रह उपलब्ध है, भले ही यह सक्रिय धागे का स्नैपशॉट है जब मैं इसे कॉल करता हूं?
यानी।
Thread[] activeThreads = ??
ध्यान दें, स्पष्ट होना, मैं नहीं Process.Threads के बारे में पूछ रहा हूँ, इस संग्रह मुझे बहुत देता है, लेकिन मैं क्या चाहते हैं के सभी नहीं। मैं जानना चाहता हूं कि हमारे आवेदन में थ्रेड का नाम कितना समय उपयोग कर रहा है (जिसका मतलब है कि मुझे बाद में दो प्रकार की वस्तुओं को जोड़ने पर ध्यान देना होगा, लेकिन सीपीयू समय से शुरू होने के लिए नाम अधिक महत्वपूर्ण हैं।)
'System.Diagnostics.ProcessThreads'' सिस्टम से सीधे संबंधित हैं। थ्रेडिंग। थ्रेड्स '? पूर्व एक ओएस धागा है, जहां उत्तरार्द्ध एक प्रबंधित धागा है। –
नहीं, वे नहीं हैं। –
थ्रेड क्लास से आपको कौन सी अतिरिक्त जानकारी चाहिए कि आपके पास ProcessThread क्लास में नहीं है? एक ऑपरेटिंग सिस्टम थ्रेडआईड के पास प्रबंधित थ्रेड के साथ कोई निश्चित संबंध नहीं है, क्योंकि एक अप्रबंधित होस्ट प्रबंधित और अप्रबंधित धागे के बीच संबंधों को नियंत्रित कर सकता है। विशेष रूप से, एक परिष्कृत होस्ट सीएलआर होस्टिंग एपीआई का उपयोग उसी ऑपरेटिंग सिस्टम थ्रेड के विरुद्ध कई प्रबंधित धागे को शेड्यूल करने के लिए या विभिन्न ऑपरेटिंग सिस्टम थ्रेड के बीच प्रबंधित थ्रेड को स्थानांतरित करने के लिए कर सकता है। – serhio