當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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#。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。