मैं .NET 3.5 का उपयोग कर रहा हूं और एक समस्या के आसपास अपने सिर को लपेटने की कोशिश कर रहा हूं (मेरे साथ एक सर्वोच्च थ्रेडिंग विशेषज्ञ भालू नहीं है)।सी # धागे के बीच संचार
मेरे पास एक विंडोज़ सेवा है जिसमें एक बहुत ही गहन प्रक्रिया है जो हमेशा चल रही है, मैंने इस प्रक्रिया को एक अलग थ्रेड पर रखा है ताकि मेरी सेवा का मुख्य धागा परिचालन कार्यों को संभाल सके - यानी, सेवा लेखा परीक्षा चक्र, कॉन्फ़िगरेशन को संभालना परिवर्तन, इत्यादि, आदि
मैं सामान्य थ्रेडस्टार्ट के माध्यम से थ्रेड को एक विधि में शुरू कर रहा हूं जो प्रक्रिया को बंद कर देता है - इसे कार्यकर्ताओं को कॉल करें।
इस कार्यकर्ता पर मैं अन्य सर्वर पर डेटा भेज रहा हूं, जैसा कि उम्मीद है कि सर्वर हर बार फिर से चालू हो जाता है और कनेक्शन खो जाता है और मुझे कनेक्शन को फिर से स्थापित करने की आवश्यकता होती है (मुझे किसी ईवेंट के माध्यम से कनेक्शन खोने से अधिसूचित किया जाता है)। यहां से मैं अपना पुन: कनेक्ट तर्क करता हूं और मैं वापस आ रहा हूं और दौड़ रहा हूं, हालांकि जो कुछ भी मैंने आसानी से नोटिस करना शुरू कर दिया था वह यह था कि मैं इस कार्यकर्ता धागे को हर बार बार-बार बना रहा था (जो मैं चाहता हूं)।
अब जब मैं कनेक्शन खो देता हूं और एक नया शुरू करता हूं तो यह कार्यकर्ताओं को मार सकता है लेकिन यह संसाधनों की बर्बादी की तरह लगता है।
मैं वास्तव में क्या करना चाहता हूं, मार्शल कॉल (यानी, मेरी थ्रेड स्टार्ट विधि) थ्रेड पर वापस है जो अभी भी स्मृति में है हालांकि कुछ भी नहीं कर रहा है।
कृपया आपके द्वारा उपयोग किए जाने वाले किसी भी उदाहरण या दस्तावेज़ पोस्ट करें।
धन्यवाद।
क्या आप अपना कोड थोड़ा सा पोस्ट कर सकते हैं? – ChaosPandion
+1 अच्छा सवाल है, लोग अब अच्छे प्रश्नों के लिए मतदान नहीं कर रहे हैं ... –