SortedList.Synchronized() স্ট্যাটিক মেথড ব্যবহার করে একটি থ্রেড-সেফ (thread-safe) র্যাপার তৈরি করা যায়। এই র্যাপারের IsSynchronized প্রপার্টি true রিটার্ন করে। মাল্টি-থ্রেডেড পরিবেশে SortedList ব্যবহার করার সময় এটি সহায়ক।
উদাহরণ ১: সিঙ্ক্রোনাইজড র্যাপার তৈরি এবং যাচাই
using System;
using System.Collections;
public class Demo {
public static void Main() {
SortedList sortedList = new SortedList();
sortedList.Add("1", "Tom");
sortedList.Add("2", "Ryan");
sortedList.Add("3", "Nathan");
Console.WriteLine("SortedList উপাদানসমূহ...");
foreach(DictionaryEntry d in sortedList) {
Console.WriteLine("Key = " + d.Key + ", Value = " + d.Value);
}
SortedList sortedList2 = SortedList.Synchronized(sortedList);
Console.WriteLine("SortedList সিঙ্ক্রোনাইজড কি? = " + sortedList2.IsSynchronized);
}
}
আউটপুট
SortedList উপাদানসমূহ... Key = 1, Value = Tom Key = 2, Value = Ryan Key = 3, Value = Nathan SortedList সিঙ্ক্রোনাইজড কি? = True
উদাহরণ ২: অসিঙ্ক্রোনাইজড SortedList
using System;
using System.Collections;
public class Demo {
public static void Main() {
SortedList sortedList = new SortedList();
sortedList.Add("1", "AB");
sortedList.Add("2", "CD");
sortedList.Add("3", "EF");
sortedList.Add("4", "GH");
sortedList.Add("5", "IJ");
sortedList.Add("6", "KL");
Console.WriteLine("SortedList উপাদানসমূহ...");
foreach(DictionaryEntry d in sortedList) {
Console.WriteLine("Key = " + d.Key + ", Value = " + d.Value);
}
Console.WriteLine("SortedList সিঙ্ক্রোনাইজড কি? = " + sortedList.IsSynchronized);
}
}
আউটপুট
SortedList উপাদানসমূহ... Key = 1, Value = AB Key = 2, Value = CD Key = 3, Value = EF Key = 4, Value = GH Key = 5, Value = IJ Key = 6, Value = KL SortedList সিঙ্ক্রোনাইজড কি? = False
দ্রষ্টব্য: আধুনিক C#-এ ConcurrentDictionary বা ImmutableSortedDictionary ব্যবহার করা আরও পছন্দনীয়, কারণ সিঙ্ক্রোনাইজড র্যাপারের পারফরম্যান্স ওভারহেড বেশি।