ภาพรวม
SortedList.Synchronized() ใช้สร้าง wrapper แบบ thread-safe สำหรับ SortedList ซึ่งคืนค่า instance ใหม่ที่มี property IsSynchronized เป็น true
ตัวอย่างที่ 1: สร้าง SortedList และ wrapper แบบ synchronized
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 elements...");
foreach (DictionaryEntry d in sortedList)
{
Console.WriteLine("Key = " + d.Key + ", Value = " + d.Value);
}
SortedList sortedList2 = SortedList.Synchronized(sortedList);
Console.WriteLine("SortedList is synchronized? = " + sortedList2.IsSynchronized);
}
}
ผลลัพธ์
SortedList elements... Key = 1, Value = Tom Key = 2, Value = Ryan Key = 3, Value = Nathan SortedList is synchronized? = True
ตัวอย่างที่ 2: SortedList ปกติไม่ได้ synchronized
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 elements...");
foreach (DictionaryEntry d in sortedList)
{
Console.WriteLine("Key = " + d.Key + ", Value = " + d.Value);
}
Console.WriteLine("SortedList is synchronized? = " + sortedList.IsSynchronized);
}
}
ผลลัพธ์
SortedList elements... 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 is synchronized? = False
สรุป
- ใช้
SortedList.Synchronized(list)สร้าง thread-safe wrapper - ตรวจสอบด้วย property
IsSynchronized - SortedList ต้นฉบับไม่ได้ synchronized โดยค่าเริ่มต้น