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

C# में Hashtable सिंक्रनाइज़्ड है या नहीं जांचें


C# में Hashtable सिंक्रनाइज़्ड (थ्रेड-सेफ) है या नहीं यह जांचने के लिए, हम IsSynchronized प्रॉपर्टी का उपयोग करते हैं। एक गैर-सिंक्रनाइज़्ड Hashtable को थ्रेड-सेफ बनाने के लिए, हम Hashtable.Synchronized() स्टैटिक मेथड का उपयोग करके एक सिंक्रनाइज़्ड रैपर बना सकते हैं। Hashtable System.Collections नेमस्पेस में स्थित एक गैर-जेनेरिक कुंजी-मान संग्रह है।

उदाहरण 1: Synchronized() रैपर के साथ सिंक्रनाइज़ेशन

using System;
using System.Collections;

public class Demo
{
    public static void Main()
    {
        Hashtable hash = new Hashtable();
        hash.Add("One", "Katie");
        hash.Add("Two", "John");
        hash.Add("Three", "Barry");
        hash.Add("Four", "");
        hash.Add("Five", "Harry");
        hash.Add("Six", "F");
        hash.Add("Seven", "Tom");
        hash.Add("Eight", "Andy");
        hash.Add("Nine", "I");
        hash.Add("Ten", "Tim");

        Console.WriteLine("Hashtable कुंजी और मान जोड़े...");
        foreach (DictionaryEntry entry in hash)
        {
            Console.WriteLine("{0} और {1} ", entry.Key, entry.Value);
        }

        Console.WriteLine("क्या Hashtable का आकार निश्चित है? = " + hash.IsFixedSize);
        Console.WriteLine("क्या Hashtable केवल-पढ़ने योग्य है? = " + hash.IsReadOnly);

        Hashtable hash2 = Hashtable.Synchronized(hash);
        Console.WriteLine("क्या Hash सिंक्रनाइज़्ड है? = " + hash2.IsSynchronized);
    }
}

आउटपुट

Hashtable कुंजी और मान जोड़े...
One और Katie
Ten और Tim
Five और Harry
Three और Barry
Seven और Tom
Two और John
Four और
Eight और Andy
Nine और I
Six और F

क्या Hashtable का आकार निश्चित है? = False
क्या Hashtable केवल-पढ़ने योग्य है? = False
क्या Hash सिंक्रनाइज़्ड है? = True

उदाहरण 2: गैर-सिंक्रनाइज़्ड Hashtable (डिफ़ॉल्ट)

using System;
using System.Collections;

public class Demo
{
    public static void Main()
    {
        Hashtable hash = new Hashtable();
        hash.Add("One", 1);
        hash.Add("Two", 2);
        hash.Add("Three", 2);
        hash.Add("Four", 4);
        hash.Add("Five", 5);
        hash.Add("Six", 6);
        hash.Add("Seven", 7);

        Console.WriteLine("Hashtable कुंजी और मान जोड़े...");
        foreach (DictionaryEntry entry in hash)
        {
            Console.WriteLine("{0} और {1} ", entry.Key, entry.Value);
        }

        Console.WriteLine("क्या Hashtable का आकार निश्चित है? = " + hash.IsFixedSize);
        Console.WriteLine("क्या Hashtable केवल-पढ़ने योग्य है? = " + hash.IsReadOnly);
        Console.WriteLine("क्या Hash सिंक्रनाइज़्ड है? = " + hash.IsSynchronized);
    }
}

आउटपुट

Hashtable कुंजी और मान जोड़े...
One और 1
Five और 5
Three और 2
Seven और 7
Two और 2
Four और 4
Six और 6

क्या Hashtable का आकार निश्चित है? = False
क्या Hashtable केवल-पढ़ने योग्य है? = False
क्या Hash सिंक्रनाइज़्ड है? = False

मुख्य बिंदु:

  • डिफ़ॉल्ट रूप से Hashtable सिंक्रनाइज़्ड नहीं होता (IsSynchronized = False)
  • Hashtable.Synchronized() एक थ्रेड-सेफ रैपर लौटाता है
  • सिंक्रनाइज़्ड रैपर पर सभी ऑपरेशंस थ्रेड-सेफ होते हैं
  • एन्यूमरेशन के लिए मैन्युअल लॉकिंग की आवश्यकता होती है (lock स्टेटमेंट)
  • आधुनिक C# में ConcurrentDictionary<TKey, TValue> को प्राथमिकता दी जाती है
  1. - C# में Hashtable का निश्चित आकार है या नहीं जांचें

    C# में Hashtable का आकार निश्चित है या नहीं, यह जांचने के लिए IsFixedSize प्रॉपर्टी का उपयोग किया जाता है। यह प्रॉपर्टी एक बूलियन मान लौटाती है। Hashtable का आकार कभी निश्चित नहीं होता, इसलिए यह हमेशा false लौटाता है। उदाहरण 1 using System; using System.Collections; public class Demo { public s

  1. - C# में Hashtable साफ़ करना

    C# में Clear() विधि का उपयोग करके Hashtable साफ़ करें। उदाहरण निम्न हमारा Hashtable है: Hashtable h = new Hashtable(); h.Add(1, Amit); h.Add(2, Sachin); h.Add(3, Rahul); Clear विधि का उपयोग करें: h.Clear(); अब यदि आप Hashtable प्रदर्शित करने का प्रयास करेंगे, तो कुछ भी प्रदर्शित नहीं होगा क्योंकि Ha

  1. - C# में Hashtable बनाम Dictionary

    हैशटेबल (Hashtable)हैश टेबल का उपयोग तब किया जाता है जब आपको कुंजी का उपयोग करके तत्वों तक पहुंचने की आवश्यकता होती है, और आप एक उपयोगी कुंजी मान पहचान सकते हैं। हैश टेबल में प्रत्येक आइटम में एक कुंजी/मान जोड़ा होता है। कुंजी का उपयोग संग्रह में आइटम तक पहुंचने के लिए किया जाता है।Hashtable में सदस