क्या यह अधिक नहीं होगा और इनमें से केवल एक आवश्यक होगा? मैंने सी # here और here में म्यूचुअल एक्सक्लूस और लॉक के बारे में अलग-अलग पोस्ट की खोज की है और पाया है।
उदाहरण:
हमारे ऐप में, हमारे पास एक ऐसा फ़ंक्शन है जो एकाधिक पुन: कनेक्शन धागे को स्पिन करता है और इस धागे के अंदर हम Mutex
और lock
का उपयोग करते हैं। lock
कोड के इस खंड तक पहुंच को अवरुद्ध नहीं करेगा और connect
को किसी अन्य थ्रेड द्वारा अपडेट करने से रोकें?सी # में ताले और म्यूटेक्स को एक साथ इस्तेमाल किया जाना चाहिए
bool connect = false;
Mutex reconnectMutex = new Mutex(false, "Reconnect_" + key);
try
{
lock(site)
{
if(site.ContainsKey(key))
{
siteInfo = (SiteInfo)site[key];
if(reconnectMutex.WaitOne(100, true))
{
connect = true;
}
}
}
if (connect)
{
// Process thread logic
}
}
catch
{}
reconnectMutex.ReleaseMutex();
अधिक जानकारी:
इस में एक ASP.NET WebService एक वेब गार्डन में नहीं चल रहा है।
इसे मशीन-विशिष्ट होने के अनुसार नामित किया जाना चाहिए, हालांकि। –
अच्छा बिंदु, मैंने आशा व्यक्त की है कि पहले वाक्य में। –
क्या आप कह रहे हैं कि मुझे कैच स्टेटमेंट को खत्म करना चाहिए और अंत में इसे बदलना चाहिए? –