परिचय
C# में सरणी (Array क्लास) SyncRoot प्रॉपर्टी प्रदान करती है जिसका उपयोग lock स्टेटमेंट के साथ थ्रेड-सेफ एन्यूमरेशन के लिए किया जा सकता है।
उदाहरण 1: पूर्णांक सरणी पर सिंक्रनाइज़ेशन
using System;
public class Demo {
public static void Main() {
Array intArr = new int[] {5, 10, 15, 20, 25, 30, 35, 40};
Console.WriteLine("पूर्णांक सरणी...");
foreach (int i in intArr)
Console.WriteLine(i);
Console.WriteLine("सरणी पर लॉक लागू करने के बाद...");
lock(intArr.SyncRoot) {
foreach (Object ob in intArr)
Console.WriteLine(ob);
}
}
}
आउटपुट
पूर्णांक सरणी... 5 10 15 20 25 30 35 40 सरणी पर लॉक लागू करने के बाद... 5 10 15 20 25 30 35 40
उदाहरण 2: स्ट्रिंग सरणी पर सिंक्रनाइज़ेशन
using System;
public class Demo {
public static void Main() {
Array strArr = new String[] {"Harry", "Tom", "Kevin", "Ryan", "Katie", "Amy"};
Console.WriteLine("स्ट्रिंग सरणी...");
foreach (string i in strArr)
Console.WriteLine(i);
Console.WriteLine("सरणी पर लॉक लागू करने के बाद...");
lock(strArr.SyncRoot) {
foreach (Object ob in strArr)
Console.WriteLine(ob);
}
}
}
आउटपुट
स्ट्रिंग सरणी... Harry Tom Kevin Ryan Katie Amy सरणी पर लॉक लागू करने के बाद... Harry Tom Kevin Ryan Katie Amy
मुख्य बिंदु
Array.SyncRootएक ऑब्जेक्ट लौटाता है जिसका उपयोग सिंक्रनाइज़ेशन के लिए किया जा सकता है।lock(array.SyncRoot)ब्लॉक के अंदर फॉरईच लूप थ्रेड-सेफ होता है।- सरणी स्वयं थ्रेड-सेफ नहीं है; केवल एन्यूमरेशन को सिंक्रनाइज़ किया जा सकता है।