c# - Using waitone() method -
स्थिर म्यूटक्स म्यूट x = नया म्यूट x (गलत, "oreilly.com OneAtATimeDemo"); स्थिर शून्य Main () {// कुछ सेकंड की प्रतीक्षा करें यदि दलील दी गई है, तो प्रोग्राम का एक अन्य उदाहरण // अभी भी बंद होने की प्रक्रिया में है। यदि (! Mutex.WaitOne (टाइमस्पेन.फॉर्मसेकंड्स (3), झूठी)) {Console.WriteLine ("ऐप का एक और उदाहरण चल रहा है। अलविदा!"); वापसी; } {Console.WriteLine ("चल रहा है, बाहर निकलने के लिए Enter दबाएं") का प्रयास करें; Console.ReadLine (); } अंत में {mutex.ReleaseMutex (); }}
इस कोड में:
यदि (mutex.WaitOne (टाइमस्पेन। ज़ोरो, सच)) {आवेदन EnableVisualStyles (); Application.SetCompatibleTextRenderingDefault (गलत); आवेदन.रुन (नया फॉर्म 1 ()); mutex.ReleaseMutex (); } और {संदेश बॉक्स। शो ("एक समय में केवल एक उदाहरण"); अगर
यदि / bool का कोई उलटा नहीं है।
अगर waitone () सच है, तो इसका मतलब यह है कि एक उदाहरण पहले से ही है चल रहा है? यदि सत्य वापस कर दिया जाता है, तो मौजूदा थ्रेड को अवरुद्ध कर दिया जाएगा जिसका मतलब होगा कि एक ही ऐप को बुलाए जाने वाली दो प्रक्रियाएं रुक जाएंगी?
मेरी समझ इस प्रकार है:
// डॉन कोड निष्पादित करते समय थ्रेड को ब्लॉक नहीं किया जा सकता // कोड को खत्म करने दें और फिर एक और प्रक्रिया दर्ज करने के लिए संकेत दें
क्या कोई निहितार्थ नहीं है! (सच वापस) और इसके विपरीत। या दूसरे शब्दों में, किसी भी तरह से क्या होता है?
मुझे प्रतीक्षा है, उदाहरण के लिए, सभी थ्रेड्स को खत्म करने के लिए प्रतीक्षा करता है जॉन स्कीट ने अपनी साइट पर इस का एक अच्छा उदाहरण दिखाया, जो मेरे दिमाग में फंस गया है (अपने स्पष्टीकरण के लिए श्रेय) तो जाहिर है प्रतीक्षा करें एक थ्रेड के लिए समाप्त करने के लिए प्रतीक्षा करता है। रिटर्न वैल्यू है जो मुझे भ्रमित करता है।
एक म्यूट एक्स पर प्रतीक्षा करने का मतलब है जब तक आप इसे प्राप्त नहीं कर सकते ।
म्यूट एक्स पर प्रतीक्षाऑन को सच लौटाएगा यदि म्यूट एक्स को दिए गए समय में प्राप्त किया जा सकता है। अगर ऐसा नहीं हो सकता है, तो विधि झूठे लौटाएगी अगर म्यूट एक्स अधिग्रहण किया गया था, तो जब आप इसे पूरा कर लें तो म्यूट एक्स रिलीज करना आपकी ज़िम्मेदारी है।
यदि आप एक नामित म्यूट एक्स का अधिग्रहण कर सकते हैं, तो इस समय किसी और का मालिक नहीं है।
> तो, रीकैप के लिए यदि आप म्यूटक्स प्राप्त कर सकते हैं, तो विधि true देता है और आप अपने प्रश्न के संबंध में आपके आवेदन का पहला / एकमात्र उदाहरण हैं। यदि आप म्यूट एक्स , विधि झूठी देता है और वर्तमान में उस नाम से म्यूट एक्स मालिक करने वाला एक अन्य अनुप्रयोग उदाहरण है।
Comments
Post a Comment