क्या पृष्ठभूमि कार्यकर्ताओं का पुन: उपयोग किया जाता है?पृष्ठभूमि कार्यकर्ताओं के आविष्कार के बीच थ्रेड-स्थानीय भंडारण जारी है?
विशेष रूप से, यदि मैं पृष्ठभूमि कार्यकर्ता की DoWork() विधि के दौरान नामित डेटा स्लॉट (थ्रेड-लोकल स्टोरेज) सेट करता हूं, तो उस डेटा स्लॉट का मान जारी रहेगा, संभावित रूप से बाद में कुछ अन्य धागे पाए जाएंगे ?
मुझे ऐसा लगा नहीं होता है, लेकिन मैं इस बग है ...
संपादित करें: This blog post पता चलता है कि BackGroundWorker एक ThreadPool जिसका मतलब है कि धागे फिर से उपयोग किया जाता है का इस्तेमाल करता है,। तो सवाल बन जाता है; पुन: प्रयुक्त धागे संभावित रूप से इनवोकेशन के बीच धागे-स्थानीय भंडारण को जारी रखते हैं?
टीएलएस में अवरोध है जब थ्रेड पूल "धागा स्थानीय भंडारण में या में डेटा जब थ्रेड पूल एक धागा पुनः उपयोग कर लेता, यह स्पष्ट नहीं है थ्रेड रिटर्न फ़ील्ड ThreadStaticAttribute विशेषता के साथ चिह्नित कर रहे हैं। इसलिए, जब एक विधि स्थानीय भंडारण या क्षेत्रों कि ThreadStaticAttribute विशेषता के साथ चिह्नित हैं थ्रेड की जांच करता है, मूल्यों यह पाता थ्रेड पूल धागा के पहले के एक प्रयोग से बचे हो सकता है। " 'स्रोत: [लिंक] (http://msdn.microsoft.com/enus/library/system.threading.threadpool.aspx)' – Taher