2012-07-12 11 views
11
Thread myThread = new Thread(new ParameterizedThreadStart(threadFunction)); 

public void threadFunction() { 
// Run a finite code 
... 
} 

प्रश्न है: myThread निपटाए मिल जाएगा एक बार threadFunction() खत्म हो गया है?क्या फ़ंक्शन का दायरा खत्म होने के बाद कोई थ्रेड स्वयं बंद हो जाता है?

+0

का उपयोग किया जाएगा; जब फ़ंक्शन पूरा हो जाता है, तो थ्रेड स्थिति 'स्टॉप' पर सेट होती है और अंततः यह कचरा एकत्रित हो जाएगी। यह भी देखें: http://stackoverflow.com/questions/81730/what-prevents-a-thread-in-c-sharp-from-being-collected – dash

+0

हां, आपका थ्रेड स्वचालित रूप से इसका निष्पादन पूरा होने पर निपटान हो जाएगा। – Siddiqui

उत्तर

16

धागे का निपटान करने की आवश्यकता नहीं है। Thread कक्षा IDisposable लागू नहीं करती है और इसमें Dispose विधि नहीं है।

जब आपका धागा पूरा करता है तो आपको साफ करने के लिए कुछ भी करने की आवश्यकता नहीं होती है।

2

हाँ .. धागा बंद हो जाएगा और एक बार फ़ंक्शन निपटारा किया जाना होगा ..
धागा आप

while(true){} 

वैकल्पिक रूप से की तरह कुछ करना होगा धारण करने के लिए यदि आप ऐसा करने पर आपका धागा चाहते हैं निपटाया गया क्योंकि एक नया धागा बनाने से संसाधनों का उपभोग होता है
आपको ThreadPool का उपयोग करना चाहिए, जिसमें नेट नाम में एक ही नाम है।
इसलिए हर बार आपको थ्रेड की आवश्यकता होती है, इसे थ्रेड पूल से लाया जाएगा और

संबंधित मुद्दे

 संबंधित मुद्दे