C# 中的 Queue.Synchronized() 方法
C# 中的 Queue.Synchronized() 方法用于返回一个新的 Queue,该 Queue 封装原始 Queue,并且是线程安全的。
语法
语法如下 −
public static System.Collections.Queue Synchronized (System.Collections.Queue queue);
在上面,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("
Queue (Updated)");
foreach(int i in queue){
Console.WriteLine(i);
}
Console.WriteLine("
Array (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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP