.net - Is this Comparer class from SSCLI library code ThreadSafe? -


  सार्वजनिक सार वर्ग तुलनार & lt; T & gt; : आईकॉमपियरर, आईकॉम्पेयरर & lt; T & gt; {स्थिर तुलनार & lt; T & gt; defaultComparer; सार्वजनिक स्थिर तुलनार & lt; T & gt; डिफ़ॉल्ट {प्राप्त करें & lt; T & gt; Comparer = defaultComparer; अगर (तुलनार == नल) {comparer = CreateComparer (); DefaultComparer = तुलनात्मक; } वापसी की तुलना; }}   

सबसे पहले, क्या डिफ़ॉल्ट प्रॉपर्टी धागा सुरक्षित है? क्या यह संभव नहीं है कि निम्नलिखित कथन का प्रभाव

  comparer = CreateComparer ();   

थ्रेड बनाने के अलावा अन्य धागे को दिखाई नहीं दे सकता है? इसलिए, तुलनार के कई उदाहरण तैयार किए गए हैं?

क्या माइक्रोसॉफ्ट एक से अधिक ऑब्जेक्ट बनाने की कीमत के साथ व्यापार सिंक्रनाइज़ेशन की लागत के लिए ऐसा कर रहा है?

दूसरा क्यों डिफाल्ट कॉम्प्रेयर को पहले सौंपा गया है तुलनात्मक चर प्रथम ... और फिर बाद में स्वैप किए गए? क्यों तुलना comparer = defaultComparer?

हां कई तुलनाकर्ता वास्तव में सृजित होते हैं, डिफ़ॉल्ट कॉम्पॅटर को कई बार सौंपा जाता है कोई समस्या नहीं, वे सभी समान हैं। कचरा कलेक्टर अतिरिक्त का ख्याल रखता है और परमाणु असाइनमेंट गारंटी देता है कि सीएलआर ऑब्जेक्ट संदर्भों के लिए प्रदान करता है यह सुनिश्चित करता है कि स्थैतिक को ग़लत ढंग से नहीं पढ़ा जा सकता है।

Comments