2011-04-01 17 views
5

क्या मैं थ्रेड के डेटा को स्टोर करने के लिए Dictionary<Thread, object> बना सकता हूं और इसे पुनः प्राप्त करने के लिए Thread.CurrentThread का उपयोग कर सकता हूं?क्या थ्रेड। कंटेंट थ्रेड हमेशा एक ही उदाहरण लौटाता है?

उत्तर

10

आप कर सकते हैं, लेकिन आपको सिंक्रनाइज़ करने की भी आवश्यकता होगी (Dictionary<,> थ्रेड-सुरक्षित नहीं है)।

विकल्प:

बेशक

, ThreadStaticAttibute पर एक शब्दकोश का उपयोग करने का एक लाभ यह है कि आप कचरा बारे में चिंता करने की आवश्यकता नहीं है उतना ही, या वास्तव में काला जादू। यदि आप .NET 4 का उपयोग कर रहे हैं, तो ThreadLocal<T> संभवतः आपका सबसे अच्छा विकल्प है।

3

हाँ, यदि आप अन्य धागे के डेटा तक पहुंचना चाहते हैं, तो आपको पहले थ्रेडस्टैटिक एट्रिब्यूट या थ्रेडलोकल पर एक नज़र डालना चाहिए, अगर थ्रेड को केवल अपना डेटा देखने की आवश्यकता है तो यह बेहतर होगा।

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