कंसुरेंसी विश्लेषक को देखते हुए, थ्रेड्स का मानना है कि ऐसा लगता है कि मेरा एप्लिकेशन दूर तक, कहीं अधिक धागे पैदा करता है जैसा मैंने सोचा था। इनमें से अधिकांश या तो "सीएलआर वर्कर थ्रेड" या "वर्कर थ्रेड" हैं।सीएलआर वर्कर थ्रेड और वर्कर थ्रेड के बीच क्या अंतर है?
अंतर क्या हैं? प्रत्येक परिस्थितियों में किस परिस्थिति में बनाया गया है?
किन परिस्थितियों CLR धागे पैदा नहीं करता है के तहत? क्या ये धागे [थ्रेडपूल] द्वारा बनाए गए हैं (http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx)? आपके उत्तर को देखते हुए, मैं वर्कर थ्रेड की बड़ी संख्या से भी रहस्यमय हूं, मुझे समझ में नहीं आता कि मैं कितने लोगों को बना सकता था। – pomeroy
अपने आवेदन कोड पर किसी भी नजर के बिना वास्तव में कहना मुश्किल है। सीएलआर ऐप थ्रेड के संबंध में कचरा संग्रहण के लिए सीएलआर कार्यकर्ता थ्रेड बना सकता है, फिर यह केवल अनुमान है, लेकिन यह मानते हुए कि एप्लिकेशन थ्रेड पूल का उपयोग करता है, वहां अच्छी तरह से प्रलेखित व्यवहार होता है - "यदि एप्लिकेशन थ्रेड पूल के लिए कार्यों को एक थ्रेड से तेज़ कर सकता है इसे संभाल लें, फिर थ्रेड पूल अतिरिक्त धागे बनाएगा। ", और" थ्रेड पूल के बारे में अच्छी बात यह है कि यह ह्युरिस्टिक है। अगर आपके एप्लिकेशन को कई कार्य करने की ज़रूरत है, तो थ्रेड पूल अधिक धागे बनाता है। " – sll
स्क्रीनशॉट को देखते हुए आपके पास केवल एक सक्रिय अनुप्रयोग धागा है (मुख्य थ्रेड को छोड़कर) जो टाइमलाइन ग्राफ पर बैंगनी है, इसका मतलब है कि यह आई/ओ ऑपरेशन में शामिल है (आप फ़ाइल/नेटवर्क स्ट्रीम, आईओ पोर्ट या उस तरह पढ़ रहे हैं), सब कुछ सिंक के लिए अन्य धागे अवरुद्ध हैं। मुझे नहीं पता कि आपके पास कई अवरुद्ध कार्यकर्ता धागे क्यों हैं, क्या आप कुछ सिंक्रनाइज़ किए गए लूप में धागे बना रहे हैं? – sll