Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में SortedList के लिए सिंक्रोनाइज़्ड रैपर बनाना

SortedList क्लास थ्रेड-सेफ नहीं है। मल्टी-थ्रेड वातावरण में थ्रेड सुरक्षा के लिए SortedList.Synchronized() स्टैटिक मेथड का उपयोग करके सिंक्रोनाइज़्ड रैपर बनाया जा सकता है।

उदाहरण 1: सिंक्रोनाइज़्ड रैपर बनाना और जांचना

using System;
using System.Collections;

public class Demo {
    public static void Main() {
        SortedList sortedList = new SortedList();
        sortedList.Add("1", "Tom");
        sortedList.Add("2", "Ryan");
        sortedList.Add("3", "Nathan");

        Console.WriteLine("SortedList तत्व...");
        foreach (DictionaryEntry entry in sortedList) {
            Console.WriteLine("Key = " + entry.Key + ", Value = " + entry.Value);
        }

        // सिंक्रोनाइज़्ड रैपर बनाएं
        SortedList syncList = SortedList.Synchronized(sortedList);
        
        Console.WriteLine("\nक्या SortedList सिंक्रोनाइज़्ड है? = " + syncList.IsSynchronized);
    }
}

आउटपुट

SortedList तत्व...
Key = 1, Value = Tom
Key = 2, Value = Ryan
Key = 3, Value = Nathan

क्या SortedList सिंक्रोनाइज़्ड है? = True

उदाहरण 2: बिना रैपर के SortedList (डिफ़ॉल्ट असिंक्रोनाइज़्ड)

using System;
using System.Collections;

public class Demo {
    public static void Main() {
        SortedList sortedList = new SortedList();
        sortedList.Add("1", "AB");
        sortedList.Add("2", "CD");
        sortedList.Add("3", "EF");
        sortedList.Add("4", "GH");
        sortedList.Add("5", "IJ");
        sortedList.Add("6", "KL");

        Console.WriteLine("SortedList तत्व...");
        foreach (DictionaryEntry entry in sortedList) {
            Console.WriteLine("Key = " + entry.Key + ", Value = " + entry.Value);
        }

        // मूल SortedList की IsSynchronized प्रॉपर्टी जांचें
        Console.WriteLine("\nक्या मूल SortedList सिंक्रोनाइज़्ड है? = " + sortedList.IsSynchronized);
    }
}

आउटपुट

SortedList तत्व...
Key = 1, Value = AB
Key = 2, Value = CD
Key = 3, Value = EF
Key = 4, Value = GH
Key = 5, Value = IJ
Key = 6, Value = KL

क्या मूल SortedList सिंक्रोनाइज़्ड है? = False

महत्वपूर्ण बिंदु

  • SortedList.Synchronized() एक थ्रेड-सेफ रैपर लौटाता है।
  • मूल SortedList की IsSynchronized प्रॉपर्टी false होती है।
  • रैपर की IsSynchronized प्रॉपर्टी true होती है।
  • सिंक्रोनाइज़्ड रैपर पर सभी ऑपरेशन थ्रेड-सेफ होते हैं।
  • एन्यूमरेशन के दौरान मैन्युअल लॉकिंग अभी भी आवश्यक हो सकती है।
  1. - C# में जांचें कि SortedList ऑब्जेक्ट का आकार निश्चित है या नहीं

    उदाहरण SortedList की IsFixedSize प्रॉपर्टी बताती है कि सूची का आकार निश्चित है या नहीं। यह प्रॉपर्टी हमेशा false लौटाती है क्योंकि SortedList गतिशील रूप से आकार बदल सकती है। using System; using System.Collections; public class Demo { public static void Main() { SortedList list = new Sor

  1. - C# में जांचें कि SortedList ऑब्जेक्ट में विशिष्ट मान है या नहीं

    यह जांचने के लिए कि क्या SortedList ऑब्जेक्ट में कोई विशिष्ट मान है, कोड इस प्रकार है: उदाहरण using System; using System.Collections; public class Demo { public static void Main(){ SortedList list = new SortedList(); list.Add(1, One); list.Add(2, Two); lis

  1. AI और कार्य का भविष्य: नौकरियों का निर्माण, न कि केवल प्रतिस्थापन AI और कार्य का भविष्य: नौकरियों का निर्माण, न कि केवल प्रतिस्थापन

    ऑटोमेशन ने निश्चित रूप से कई नौकरियों को नष्ट किया है, लेकिन AI से इसकी उम्मीद नहीं की जा सकती। आम धारणा के विपरीत, नए शोधों ने सुझाव दिया है कि आर्टिफिशियली इंटेलिजेंट मशीनों को अपने प्रारंभिक चरण में जनशक्ति की आवश्यकता होगी। कई चीजें हैं जो एक AI मशीन करने में सक्षम है, फिर भी यह अभी भी मनुष्यों