C # 中的 Queue.IsSynchronized ()方法用于获取一个值,该值指示对 Queue 的访问是否同步(线程安全)。
语法如下
public virtual bool IsSynchronized { get; }
现在让我们来看一个例子-
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); queue.Enqueue(400); queue.Enqueue(500); queue.Enqueue(600); queue.Enqueue(700); queue.Enqueue(800); queue.Enqueue(900); queue.Enqueue(1000); Console.WriteLine("Queue..."); IEnumerator demoEnum = queue.GetEnumerator(); while (demoEnum.MoveNext()) { Console.WriteLine(demoEnum.Current); } Console.WriteLine("队列是否同步? = "+queue.IsSynchronized); } }输出结果
Queue... 100 200 300 400 500 600 700 800 900 1000 队列是否同步? = False
现在让我们看看另一个例子-
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("队列是否同步? = "+queue.IsSynchronized); Queue queue2 = Queue.Synchronized(queue); Console.WriteLine("现在队列同步了吗? = "+queue2.IsSynchronized); } }输出结果
Queue... AB BC CD DE EF FG GH HI 队列是否同步? = False 现在队列同步了吗? = True