2009-05-21 7 views
7

कहें कि आप एएसपी.NET वेब एप्लिकेशन के भीतर सभी थ्रेड/सत्रों में किसी वर्ग या चर के समान संसाधन साझा करना चाहते हैं। क्या बेहतर है?बेहतर क्या है: स्टेटिक वेरिएबल वीएस Asp.NET आवेदन सत्र?

1) एक स्थैतिक चर उस स्थिर चर के थ्रेड-सुरक्षित एक्सेसर्स वाले हैं?

2) या एक एएसपी.नेट आवेदन सत्र चर?

+3

यह http://stackoverflow.com/questions/303725/asp-net-application-state-vs-a का एक शिकार है -स्टैटिक-ऑब्जेक्ट –

+0

आह ठीक है ... मैंने यह नहीं देखा ... तो मुझे इस प्रश्न को अभी बंद करना चाहिए? – 7wp

उत्तर

7

यदि आपके पास केवल उनमें से एक है, तो थोड़ा अंतर होता है।

यदि आपके पास कई हैं, तो आपको Application चर के बजाय स्थिर चर का उपयोग करना चाहिए। Application.Lock विधि सभीApplication चर लॉक कर देगा, जबकि आप अपने स्थिर चर के लिए अलग सिंक्रनाइज़ेशन पहचानकर्ताओं का उपयोग कर सकते हैं, ताकि प्रत्येक लॉक केवल उस विशिष्ट चर को एक्सेस करने वाले कोड को प्रभावित कर सके।

+0

तो साइट के वेब फार्म में क्या है इसके बारे में क्या? और क्या आपके पास इसका एक उदाहरण है। – Choco

+0

@Choco: फिर आप वास्तव में उसी ऑब्जेक्ट को साझा नहीं कर सकते हैं, क्योंकि आप सर्वर के बीच डेटा भेजते हैं। यहां एक लेख दिया गया है जो विकल्पों का अवलोकन देता है: http://www.codeproject.com/Articles/180726/State-management-and-ways-to-handle-Cache-in-a- वेब – Guffa

0

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

यदि आप जिस मान को रखना चाहते हैं वह उपयोगकर्ता पर निर्भर है तो सत्र का उपयोग करें।

0

यह सच सत्र चर का उपयोग केवल तभी किया जाना चाहिए जब आप पूरे सत्र के लिए मूल्य संग्रहीत करना चाहते हैं, लेकिन यदि आप चाहते हैं कि वेरिएबल्स को शुरू किया जाए और फॉर्म के बीच में उपयोग किया जाए और यदि betwwen में बदला गया हो एक ही ऑब्जेक्ट के लिए पूरे एप्लिकेशन के माध्यम से उपलब्ध होना चाहिए स्थिर चर का उपयोग करना चाहिए।

4

स्टेटिक सदस्य बेहतर प्रदर्शन की पेशकश करेगा, लेकिन नीचे की ओर वे सुरक्षित थ्रेड नहीं कर रहे हैं:

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

से: http://support.microsoft.com/default.aspx?scid=kb;en-us;Q312607

और:

http://weblogs.asp.net/plip/archive/2003/12/01/40526.aspx

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