Array.SyncRoot প্রোপার্টি একটি অবজেক্ট পাওয়ার জন্য ব্যবহৃত হয় যা Array-এ এক্সেস সিঙ্ক্রোনাইজ করতে ব্যবহার করা যায়। যেসব ক্লাসে অ্যারে থাকে তারা ও 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)