2010-01-21 4 views
6

क्या नव-निर्मित धागे को थ्रेडस्टैटिक स्थिति (या ऐसा कुछ) के मूल्यों को उनके मूल धागे पर प्राप्त करने का कोई तरीका है? मैं "गतिशील रूप से स्कॉप्ड" विशेष चर लागू करने के लिए इस (या कुछ ऐसा) उपयोग करना चाहता हूं जिसमें ट्रैकिंग/लॉगिंग आदि के लिए उपयोग करने के लिए ऑपरेशन/कार्य संदर्भ जानकारी शामिल है। क्या यह एक उचित दृष्टिकोण है, और इसे काम करने के लिए बनाया जा सकता है?मल्टीथ्रेड किए गए संदर्भ में सी #/.NET में गतिशील स्कोपिंग को लागू करने के लिए थ्रेडस्टैटिक मानों को विरासत देना

उत्तर

6

आप मूल्यों का "वारिस" नहीं कर सकते हैं। हालांकि, .NET 4 के लिए नया ThreadLocal<T> class आपको constructor में Func<T> प्रदान करने की अनुमति देता है, जो पैरेंट के राज्य के आधार पर धागा को प्रारंभ कर सकता है। यह एक उचित कामकाज प्रदान करेगा।

+0

धन्यवाद, यह निश्चित रूप से दिलचस्प है। लेकिन मैं बच्चे को माता-पिता की स्थिति तक पहुंचने की अनुमति कैसे दूंगा? –

+0

आप माता-पिता में एक लैम्ब्डा का उपयोग कर सकते हैं जो थ्रेडलोकल को निष्क्रिय करने के लिए आवश्यक चर में चर प्रदान करता है। यह आलसी प्रारंभिक रूप का एक रूप उपयोग करता है, इसलिए पहले उपयोग पर, आपको वर्तमान माता-पिता का राज्य मिल जाएगा। –

+0

यह उस समय नहीं किया जो मुझे उस समय के लिए जरूरी था जिसे मैं भूल गया था, लेकिन यह वैसे भी जानना अच्छा था। –

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

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