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)