Questa documentazione è stata archiviata e non viene gestita.

Classe Queue

Rappresenta un insieme di oggetti FIFO (First-In First-Out).

Spazio dei nomi: System.Collections
Assembly: mscorlib (in mscorlib.dll)

[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public class Queue : ICollection, IEnumerable, ICloneable
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public class Queue implements ICollection, IEnumerable, 
	ICloneable
SerializableAttribute 
ComVisibleAttribute(true) 
public class Queue implements ICollection, IEnumerable, 
	ICloneable

Le code sono utili per archiviare i messaggi in ordine di ricezione, in modo da poterli elaborare in modo sequenziale. Questa classe implementa una coda come matrice circolare. Gli oggetti memorizzati in una Queue vengono inseriti a un'estremità e rimossi dall'altra.

La capacità di una classe Queue è il numero di elementi che tale classe Queue può contenere. La capacità iniziale predefinita per una classe Queue è 32. Quando vengono aggiunti elementi a una classe Queue, la capacità viene automaticamente aumentata secondo le necessità, tramite riallocazione. La capacità può essere ridotta mediante la chiamata a TrimToSize.

Il fattore di crescita è il numero per il quale viene moltiplicata la capacità corrente quando è necessaria una capacità maggiore. Il fattore di crescita viene determinato al momento della costruzione della classe Queue. Il fattore di crescita predefinito è 2.0.

Queue accetta riferimento null (Nothing in Visual Basic) come valore valido e consente elementi duplicati.

Per la versione generica di questo insieme, vedere System.Collections.Generic.Queue.

L'esempio che segue illustra come creare e aggiungere valori a uno Queue e come stampare i relativi valori.

 using System;
 using System.Collections;
 public class SamplesQueue  {
 
    public static void Main()  {
 
       // Creates and initializes a new Queue.
       Queue myQ = new Queue();
       myQ.Enqueue("Hello");
       myQ.Enqueue("World");
       myQ.Enqueue("!");
 
       // Displays the properties and values of the Queue.
       Console.WriteLine( "myQ" );
       Console.WriteLine( "\tCount:    {0}", myQ.Count );
       Console.Write( "\tValues:" );
       PrintValues( myQ );
    }
 
 
    public static void PrintValues( IEnumerable myCollection )  {
       foreach ( Object obj in myCollection )
          Console.Write( "    {0}", obj );
       Console.WriteLine();
    }
 }
 /* 
 This code produces the following output.
 
 myQ
     Count:    3
     Values:    Hello    World    !
*/ 

import System.*;
import System.Collections.*;

public class SamplesQueue
{
    public static void main(String[] args)
    {
        // Creates and initializes a new Queue.
        Queue myQ = new Queue();
        myQ.Enqueue("Hello");
        myQ.Enqueue("World");
        myQ.Enqueue("!");

        // Displays the properties and values of the Queue.
        Console.WriteLine("myQ");
        Console.WriteLine(
            "\tCount:    {0}",System.Convert.ToString(myQ.get_Count()));
        Console.Write("\tValues:");
        PrintValues(myQ);
    } //main

    public static void PrintValues(IEnumerable myCollection)
    {
        IEnumerator enumerator = myCollection.GetEnumerator();
        while(enumerator.MoveNext()) {
            Object obj = enumerator.get_Current();
            Console.Write("    {0}", obj);
        }
        Console.WriteLine();
    } //PrintValues
} //SamplesQueue

/* 
 This code produces the following output.
 
 myQ
     Count:    3
     Values:    Hello    World    !
 */

System.Object
  System.Collections.Queue

I membri statici pubblici (Shared in Visual Basic) di questo tipo sono thread-safe. Qualsiasi membro di istanza non ha garanzia di essere thread-safe.

Per garantire che la classe Queue sia thread-safe, è necessario che tutte le operazioni siano eseguite tramite il wrapper restituito dal metodo Synchronized.

L'enumerazione di un insieme non è di per sé una procedura thread-safe. Anche se un insieme è sincronizzato, è possibile che venga modificato da altri thread, con conseguente generazione di un'eccezione da parte dell'enumeratore. Per garantire che un insieme sia thread-safe durante l'enumerazione, è possibile bloccarlo nel corso dell'operazione oppure rilevare le eccezioni generate dalle modifiche apportate da altri thread.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0 1.1 1.0

.NET Compact Framework

Supportato in: 2.0 1.0
Mostra: