सिंक्रूट के पीछे नई सोच यह है कि यह मूल डिजाइन में एक गलती थी। यदि लॉक करने की एकमात्र चीज डिक्शनरी है और यह निजी है, तो आप इसे या अन्य ऑब्जेक्ट को लॉक कर सकते हैं जो सिंक्रनाइज़ेशन ऑब्जेक्ट के रूप में कार्य करता है। उत्तरार्द्ध तकनीक तब उपयोगी होती है जब आप जिस राज्य की रक्षा कर रहे हैं वह सिर्फ शब्दकोश से अधिक है।
// used as you would have used SyncRoot before
object _syncLock = new object();
Dictionary<string, int> numberMapper = new Dictionary<string, int>();
// in some method...
lock (_syncLock)
{
// use the dictionary here.
}
स्रोत
2008-11-29 17:30:38
यानी, ऐसा मत करो। – Will
पूरी तरह से सहमत हैं। फिर भी जब लोग "यह बुरा है, इसे मत करो" के साथ जवाब देते हैं तो मैं वास्तव में इससे नफरत करता हूं :) :)। अधिकांश समय लोग एक प्रश्न पूछते हैं, वे अक्सर एक विशेष परिदृश्य में फंस जाते हैं और इसके माध्यम से काम करने की आवश्यकता होती है। मैं समस्या पर सलाह देने और सलाह क्यों देता हूं कि यह बुरा क्यों है और इससे कैसे बचें। – JaredPar