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

सरणी वर्ग की Array.SyncRoot संपत्ति सी # में क्या करती है?

Array.SyncRoot प्रॉपर्टी का उपयोग किसी ऑब्जेक्ट को प्राप्त करने के लिए किया जाता है जिसका उपयोग ऐरे तक पहुंच को सिंक्रनाइज़ करने के लिए किया जा सकता है। जिन वर्गों में सरणियाँ हैं, वे अपने स्वयं के सिंक्रनाइज़ेशन को लागू करने के लिए SyncRoot गुण का भी उपयोग कर सकते हैं।

संग्रह के माध्यम से गणना करना थ्रेड सुरक्षित प्रक्रिया नहीं है। संग्रह के सिंक्रनाइज़ होने पर भी अन्य थ्रेड संग्रह को संशोधित कर सकते हैं। यह अंततः एन्यूमरेटर को अपवाद फेंकने का कारण बनता है। इसके लिए आपको संग्रह को लॉक करना होगा।

आइए Array.SyncRoot प्रॉपर्टी के साथ काम करने के लिए एक उदाहरण देखें -

उदाहरण

using System;
using System.Collections.Generic;
using System.Linq;

class Program {
   static void Main() {
      Array arr = new int[] { 23, 11, 32, 18, 87 };
      lock(arr.SyncRoot) {
         foreach (Object val in arr)
         Console.WriteLine(val);
      }
   }
}

आउटपुट

23
11
32
18
87

ऊपर, हमने ऐरे पर लॉक सेट किया है -

lock(arr.SyncRoot)

  1. सरणी वर्ग की Array.Rank संपत्ति C# में क्या करती है?

    रैंक गुण का उपयोग करके, आइए एक सरणी के आयामों की संख्या ज्ञात करने के लिए एक उदाहरण देखें। arr.Rank यहाँ, arr हमारा ऐरे है - int[,] arr = new int[5,5]; यदि आप सरणी में मौजूद पंक्तियों और स्तंभों को प्राप्त करना चाहते हैं, तो GetLength गुण का उपयोग करें - arr.GetLength(0); arr.GetLength(1); निम्नल

  1. सी # में बिटअरे क्लास की गणना संपत्ति क्या है?

    काउंट प्रॉपर्टी का उपयोग करके बिटअरे वर्ग में तत्वों की संख्या की गणना करें। आइए सबसे पहले अपनी बिटअरे क्लास सेट करें - BitArray arr = new BitArray(10); अब काउंट प्रॉपर्टी का उपयोग करें जैसा कि नीचे दिखाया गया है - उदाहरण using System; using System.Collections; public class Demo {    p

  1. सी # में सॉर्टेडलिस्ट क्लास की क्षमता संपत्ति क्या है?

    SortedList वर्ग में क्षमता गुण में SortedList का अधिकतम आकार होता है। सॉर्टेडलिस्ट की डिफ़ॉल्ट क्षमता 16 है। आप C# में SortedList वर्ग की क्षमता संपत्ति को लागू करने के लिए निम्नलिखित कोड को चलाने का प्रयास कर सकते हैं - उदाहरण using System; using System.Collections; namespace Demo {