मुझे अपने आवेदन में एक आवश्यकता है जो मुझे लगता है कि थ्रेड स्थानीय भंडारण का उपयोग करके मुझे पूरा किया जा सकता है, लेकिन मुझे आश्चर्य है कि यह उन चीजों में से एक है जो इससे बचने के लिए सबसे अच्छा है।.NET में थ्रेड स्थानीय संग्रहण का उपयोग करने के लिए सर्वोत्तम प्रथाएं क्या हैं?
मैं इस विषय पर कुछ लेख पढ़ा है:
http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx?article=58
http://msdn.microsoft.com/en-us/library/system.threadstaticattribute(vs.80).aspx
मैं कैसे इसका इस्तेमाल करने के पता है, मैं सिर्फ अगर मैं इसका इस्तेमाल करना चाहिए सोच रहा हूँ।
कोई सलाह, गेटचास के बारे में पता होना चाहिए?
[संपादित करें]
यहाँ उपयोग मामला है:
मैं कुछ तरीकों कि प्रत्येक प्रश्न के बारे में प्रवेश करने का एक बहुत कुछ कर के माध्यम से सभी डेटा का उपयोग फ़नल। एक चीज जो मैं लॉग करता हूं वह कमांड टेक्स्ट का पूरा डंप होता है जिसमें कमांड कमांड होते हैं ताकि मैं सीधे अपने ट्रेस लॉग से एसक्यूएल प्रबंधन स्टूडियो में कॉपी-पेस्ट कर सकूं।
मेरे वेब ऐप्स में ग्लोबल.एक्सएक्स में रास्ता अप मैं व्यवस्थापक को ईमेल भेजता हूं, जब मैं एक अनचाहे अपवाद प्राप्त करता हूं। जब मैं एक एसक्यूएलएक्सप्शन प्राप्त करता हूं, तो मैं उस एसक्यूएल कमांड डंप टेक्स्ट को इस ईमेल में रखना चाहता हूं, जो एक प्रश्न के कारण पृष्ठ को उड़ाते समय मुझे ट्रेस लॉग के माध्यम से खोदने का समय बचाएगा।
मैं अपने डेटा एक्सेस क्लास के विधि हस्ताक्षर को बदलना नहीं चाहता हूं, इसलिए मैं अपवाद प्राप्त करते समय इसे बाहर निकालने के लिए, बस स्टैक के नीचे कुछ संदर्भ पारित कर सकता हूं। मैं सोच रहा था कि शायद "lastsqlcommand" जैसे कुछ डालने के लिए टीएलएस एक अच्छी जगह होगी, लेकिन यह व्यवहार्य समाधान की तरह नहीं दिख रहा है।
मैंने हमेशा थ्रेड-लोकल स्टोरेज से परहेज किया है और एक ही चीज़ करने के लिए एक और तरीका खोजा है। मेरा विचार हमेशा थ्रेड-स्थानीय भंडारण प्रत्यक्ष पहुंच से धीमा है (सुनिश्चित नहीं है कि यह सही है या नहीं)। मैं उत्सुक हूं कि दूसरों को भी क्या लगता है। – dongola7