2009-04-01 9 views
14

यदि मेरे पास दी गई रजिस्ट्री कुंजी (HKLM से बाहर) तक पहुंचने वाली दो प्रक्रियाएं हैं, तो क्या यह एक म्यूटेक्स में तर्क को लपेटना अच्छा विचार है?क्या Win32 रजिस्ट्री 'थ्रेड सुरक्षित' है?

उत्तर

17

रजिस्ट्री यह सुनिश्चित करेगी कि कार्य परमाणु हैं, इसलिए आपको इसे स्वयं सिंक्रनाइज़ करने की आवश्यकता नहीं है।

हालांकि, यदि आपके पास एक ही समय में रजिस्ट्री तक पहुंचने वाली कई प्रक्रियाएं/धागे हैं, तो इससे पहले कोई भी गारंटी नहीं होती है। केवल इतना है कि आपको खराब डेटा नहीं मिलेगा।

संपादित करें: आगे पढ़ें, The inability to lock someone out of the registry is a feature, not a bug देखें।

0

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

1

इस रेमंड चेन लेख का एक त्वरित पठन लें। यह बताता है कि रजिस्ट्री के खिलाफ व्यक्तिगत लिखता है और पढ़ता है परमाणु हैं। हालांकि, अन्य लॉकिंग आपके ऊपर है क्योंकि अब विशेष रूप से एक खुली कुंजी पकड़ने का तरीका है।

http://blogs.msdn.com/oldnewthing/archive/2009/03/26/9508968.aspx

2

विंडोज सर्वर 2008 भी रजिस्ट्री में लेन-देन संबंधी पहुँच के लिए समर्थन हासिल है। एमएसडीएन में Here's the overview। और यहां कुछ प्रश्नों और उत्तरों के साथ इसे blog post घोषित किया गया है।

4

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

दुर्भाग्य से, कोई प्रत्यक्ष प्रबंधित समर्थन नहीं है इसलिए आपको रैपर बनाने की आवश्यकता है। http://community.bartdesmet.net/blogs/bart/archive/2006/12/14/Windows-Vista-2D00-Introducing-TxR-in-C_2300_-_2800_Part-1_2900_.aspx दिखाता है कि पी/इन तरीकों को कैसे आमंत्रित करें।

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