2008-11-12 23 views
16

मेरे पास एक असेंबली है जिसका उपयोग एक समय में एक से अधिक प्रक्रियाओं द्वारा किया जा सकता है। यदि मैं एक स्थिर वर्ग का उपयोग कर रहा हूं, तो क्या कई प्रक्रियाएं उस वर्ग के समान "उदाहरण" का उपयोग करेंगी?एक स्टेटिक क्लास का दायरा क्या है?

चूंकि प्रक्रियाएं अलग हैं, तो क्या ये अंतर डोमेन अनुप्रयोगों के तहत चल रही हैं, इसलिए स्थिर "उदाहरण" अलग हैं?

यहां विवरण में हलवा यह है कि असेंबली का उपयोग कस्टम बिज़टॉक एडाप्टर द्वारा किया जा रहा है कि मैं समानांतर बैचों में संदेशों को संसाधित करने के लिए सेट किया गया हूं। यही वह है जिसे मैं उपरोक्त "एकाधिक प्रक्रियाओं" कह रहा हूं।

उत्तर

10

एकाधिक धागे एक उदाहरण साझा करेंगे। इस कारण से एक स्थिर वर्ग धागे के बीच राज्य को पारित करने के लिए सुविधाजनक हो सकता है, लेकिन आपको बहुत सावधान रहने की आवश्यकता है कि दौड़ की स्थिति (Monitor या lock आपकी संपत्तियों को न पेश करें)।

हालांकि, प्रक्रिया अलग-अलग ऐपडोमेन्स में होनी चाहिए और इसलिए प्रत्येक का अपना उदाहरण होना चाहिए।

+0

द्वारा हराया एक वेब अनुप्रयोग के बारे में क्या। यदि मैं दो अन्य अलग असेंबली (डीएलएल # 2 और डीएलएल # 3) से डीएलएल # 1 में परिभाषित एक ही स्थैतिक वर्ग का उपयोग करता हूं, तो वेबसाइट के संदर्भ में # 3 और वेबसाइट द्वारा संदर्भित डीएलएल # 2, क्या वे समान स्थिर वर्ग साझा करेंगे मान? –

+1

@LordofScripts हां, क्योंकि वे सभी एक ही ऐपडोमेन में हैं –

13

स्थिर अनुप्रयोग प्रति आवेदन डोमेन में एक बार मौजूद हैं। आपके मामले में, यह इस बात पर निर्भर करेगा कि एडाप्टर एक ही एप्लिकेशन डोमेन में एकाधिक धागे का उपयोग कर रहा है (इस प्रकार स्थैतिक वर्ग का एक उदाहरण साझा कर रहा है) या एकाधिक प्रक्रियाओं का उपयोग कर रहा है (इस प्रकार स्थिर वर्ग के अलग-अलग उदाहरण हैं)।

+0

मुझे 4 सेकंड –

2

एक स्थिर वर्ग का दायरा एप्लिकेशन डोमेन तक सीमित है। प्रत्येक ऐप डोमेन में आपके पास मौजूद किसी स्थिर चर की अपनी प्रति होगी। यदि आपकी "प्रक्रियाएं" एक ही ऐप डोमेन के भीतर धागे हैं, तो वे स्थिर मान साझा करेंगे। लेकिन अगर वे वास्तविक विंडोज़ प्रक्रियाएं हैं, तो उनके पास अलग-अलग ऐप डोमेन होंगे और इसलिए अलग-अलग प्रतियां होंगी।

6

"मेरे पास एक असेंबली है जिसका उपयोग एक समय में एक से अधिक प्रक्रियाओं द्वारा किया जा सकता है। अगर मैं एक स्थिर वर्ग का उपयोग कर रहा हूं, तो क्या कई प्रक्रियाएं सभी उस वर्ग के" उदाहरण "का उपयोग करती हैं?"

नहीं, उनके सभी अलग-अलग उदाहरण हैं।

"चूंकि प्रक्रियाएं अलग हैं, क्या ये अंतर डोमेन अनुप्रयोगों के तहत चल रही हैं, इसलिए स्थिर" उदाहरण "अलग हैं?"

हां।

2

आप सिंगलटन पैटर्न को देखना चाहते हैं। लगता है कि आप सेवा उदाहरणों की संख्या को नियंत्रित करना चाहते हैं।

मुझे लगता है कि आप एक अलग डीएल/परियोजना सभी ग्राहक अनुरोधों की सेवा करना चाहते हैं। वांछित कार्यक्षमता को लागू करने के लिए आप स्थिर वर्ग/सिंगलटन/मल्टीटन का उपयोग कर सकते हैं। यह वास्तव में उस पर निर्भर करता है जो आप पूरा करने की कोशिश कर रहे हैं।

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