เมธอด Queue.Synchronized() ใน C# ใช้เพื่อส่งคืน Queue ใหม่ที่ล้อมคิวเดิมและเป็นเธรดที่ปลอดภัย
ไวยากรณ์
ไวยากรณ์มีดังนี้ −
public static System.Collections.Queue Synchronized (System.Collections.Queue queue);
ด้านบน คิวพารามิเตอร์คือคิวที่จะซิงโครไนซ์
ตัวอย่าง
เรามาดูตัวอย่างกัน −
using System; using System.Collections; public class Demo { public static void Main(){ Queue queue = new Queue(); queue.Enqueue("AB"); queue.Enqueue("BC"); queue.Enqueue("CD"); queue.Enqueue("DE"); queue.Enqueue("EF"); queue.Enqueue("FG"); queue.Enqueue("GH"); queue.Enqueue("HI"); Console.WriteLine("Queue..."); IEnumerator demoEnum = queue.GetEnumerator(); while (demoEnum.MoveNext()){ Console.WriteLine(demoEnum.Current); } Console.WriteLine("Is Queue synchronized? = "+queue.IsSynchronized); Queue queue2 = Queue.Synchronized(queue); Console.WriteLine("Is Queue synchronized now? = "+queue2.IsSynchronized); } }
ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
Queue... AB BC CD DE EF FG GH HI Is Queue synchronized? = False Is Queue synchronized now? = True
ตัวอย่าง
เรามาดูตัวอย่างอื่นกัน −
using System; using System.Collections; public class Demo { public static void Main(){ Queue queue = new Queue(); queue.Enqueue(100); queue.Enqueue(200); queue.Enqueue(300); Console.WriteLine("Is Queue synchronized? = "+queue.IsSynchronized); Queue queue2 = Queue.Synchronized(queue); Console.WriteLine("Is Queue synchronized now? = "+queue2.IsSynchronized); Console.Write("Count of elements = "); Console.WriteLine(queue.Count); Console.WriteLine("Queue..."); foreach(int i in queue){ Console.WriteLine(i); } Console.WriteLine("Does the queue has element 500? = "+queue.Contains(500)); int[] intArr = new int[5]; intArr[0] = 1; intArr[1] = 2; intArr[2] = 3; intArr[3] = 4; queue.CopyTo(intArr, 1); Console.WriteLine("\nQueue (Updated)"); foreach(int i in queue){ Console.WriteLine(i); } Console.WriteLine("\nArray (Updated)"); foreach(int i in intArr){ Console.WriteLine(i); } } }
ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
Is Queue synchronized? = False Is Queue synchronized now? = True Count of elements = 3 Queue... 100 200 300 Does the queue has element 500? = False Queue (Updated) 100 200 300 Array (Updated) 1 100 200 300 0