当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C# Queue.Synchronized()用法及代码示例


此方法用于返回包装原始队列并且是线程安全的新Queue。此方法返回的包装器在执行操作之前将队列锁定,以便以线程安全的方式执行该包装。

用法:

public static System.Collections.Queue Synchronized (System.Collections.Queue queue);



返回值:同步的队列包装器(线程安全)。

异常:如果队列为null,则此方法将提供ArgumentNullException。

以下示例程序旨在说明上述方法的使用:

示例1:

// C# code to illustrate the 
// Queue.Synchronized() Method 
using System; 
using System.Collections; 
  
class GFG { 
  
    // Driver code 
    public static void Main() 
    { 
  
        // Creating a Queue 
        Queue myQueue = new Queue(); 
  
        // Inserting the elements into the Queue 
        myQueue.Enqueue("C"); 
        myQueue.Enqueue("C++"); 
        myQueue.Enqueue("Java"); 
        myQueue.Enqueue("C#"); 
        myQueue.Enqueue("HTML"); 
        myQueue.Enqueue("CSS"); 
  
        // Creates a synchronized 
        // wrapper around the Queue 
        Queue sq = Queue.Synchronized(myQueue); 
  
        // Displays the synchronization 
        // status of both ArrayList 
        Console.WriteLine("myQueue is {0}.", myQueue.IsSynchronized ? 
                                "Synchronized" : "Not Synchronized"); 
  
        Console.WriteLine("sq is {0}.", sq.IsSynchronized ?  
                      "Synchronized" : "Not Synchronized"); 
    } 
}

输出:

myQueue is Not Synchronized.
sq is Synchronized.

示例2:

// C# code to illustrate the 
// Queue.Synchronized() Method 
using System; 
using System.Collections; 
  
class GFG { 
  
    // Driver code 
    public static void Main() 
    { 
  
        // Creating a Queue 
        Queue myQueue = new Queue(); 
  
        // Inserting the elements into the Queue 
        myQueue.Enqueue("Geeks"); 
        myQueue.Enqueue("for"); 
        myQueue.Enqueue("Geeks"); 
        myQueue.Enqueue("Noida"); 
        myQueue.Enqueue("Sector"); 
        myQueue.Enqueue("142"); 
  
        // it will give error as 
        // the parameter is null 
        Queue smyList = Queue.Synchronized(null); 
    } 
}

运行时错误:

Unhandled Exception:
System.ArgumentNullException: Value cannot be null.
Parameter name: queue

参考:



相关用法


注:本文由纯净天空筛选整理自Kirti_Mangal大神的英文原创作品 Queue.Synchronized() Method in C#。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。