Assembly : mscorlib (dans mscorlib.dll)
Syntaxe<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public Class Queue Implements ICollection, IEnumerable, ICloneable
Dim instance As Queue
[SerializableAttribute] [ComVisibleAttribute(true)] public class Queue : ICollection, IEnumerable, ICloneable
[SerializableAttribute] [ComVisibleAttribute(true)] public ref 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
NotesLes files d'attente permettent d'enregistrer des messages dans l'ordre dans lequel ils sont reçus pour le traitement séquentiel. Cette classe implémente une file d'attente en tant que tableau circulaire. Les objets stockés dans Queue sont insérés à une extrémité et supprimés à l'autre.
La capacité de Queue correspond au nombre d'éléments que peut contenir Queue. La capacité initiale par défaut de Queue est 32. Lorsque des éléments sont ajoutés à Queue, la capacité augmente automatiquement par réallocation. Cette capacité peut diminuer en appelant TrimToSize.
Le facteur de croissance est le nombre par lequel est multipliée la capacité actuelle lorsqu'il est nécessaire de passer à une capacité supérieure. Le facteur de croissance est déterminé lors de la construction de Queue. Le facteur de croissance par défaut est 2.0.
Queue accepte référence Null (Nothing en Visual Basic) comme valeur valide et autorise les éléments en double.
Pour la version générique de cette collection, consultez System.Collections.Generic.Queue.
ExempleL'exemple suivant illustre la création et l'ajout de valeurs à Queue et l'impression de ses valeurs.
Imports System Imports System.Collections Public Class SamplesQueue Public Shared Sub Main() ' Creates and initializes a new Queue. Dim myQ As New Queue() myQ.Enqueue("Hello") myQ.Enqueue("World") myQ.Enqueue("!") ' Displays the properties and values of the Queue. Console.WriteLine("myQ") Console.WriteLine(" Count: {0}", myQ.Count) Console.Write(" Values:") PrintValues(myQ) End Sub 'Main Public Shared Sub PrintValues(myCollection As IEnumerable) Dim obj As [Object] For Each obj In myCollection Console.Write(" {0}", obj) Next obj Console.WriteLine() End Sub 'PrintValues End Class 'SamplesQueue ' This code produces the following output. ' ' myQ ' Count: 3 ' Values: Hello World !
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 ! */
using namespace System; using namespace System::Collections; void PrintValues( IEnumerable^ myCollection ); int main() { // Creates and initializes a new Queue. Queue^ myQ = gcnew 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 ); } void PrintValues( IEnumerable^ myCollection ) { IEnumerator^ myEnum = myCollection->GetEnumerator(); while ( myEnum->MoveNext() ) { Object^ obj = safe_cast<Object^>(myEnum->Current); 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 ! */
Sécurité des threadsLes membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Afin de garantir la sécurité des threads de Queue, toutes les opérations doivent être effectuées par l'intermédiaire du wrapper retourné par la méthode Synchronized.
L'énumération d'une collection n'est intrinsèquement pas une procédure thread-safe. Même lorsqu'une collection est synchronisée, les autres threads peuvent toujours modifier la collection, ce qui entraîne la levée d'une exception par l'énumérateur. Pour garantir la sécurité des threads au cours de l'énumération, vous pouvez soit verrouiller la collection pendant l'ensemble de l'énumération, soit intercepter les exceptions résultant des modifications apportées par les autres threads.
Plates-formesWindows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.
Informations de version
Outils (masquer)
S'enregistrer
Liste des Membres
Qui est en ligne?
FAQ