Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Queue-Klasse

 

Veröffentlicht: Oktober 2016

Stellt eine FIFO-Auflistung (First-In-First-Out) von Objekten dar.

Namespace:   System.Collections
Assembly:  mscorlib (in mscorlib.dll)

System.Object
  System.Collections.Queue

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class Queue : ICollection, IEnumerable, ICloneable

NameBeschreibung
System_CAPS_pubmethodQueue()

Initialisiert eine neue Instanz der Queue -Klasse, die leer ist, wird die anfängliche Standardkapazität verfügt und den Standardzuwachsfaktor verwendet.

System_CAPS_pubmethodQueue(ICollection)

Initialisiert eine neue Instanz der Queue -Klasse, die aus der angegebenen Auflistung kopierte Elemente enthält die anfängliche Kapazität entspricht der Anzahl der kopierten Elemente verfügt und den Standardzuwachsfaktor verwendet.

System_CAPS_pubmethodQueue(Int32)

Initialisiert eine neue Instanz der Queue -Klasse, die leer ist, wird die angegebene anfängliche Kapazität verfügt und den Standardzuwachsfaktor verwendet.

System_CAPS_pubmethodQueue(Int32, Single)

Initialisiert eine neue Instanz der der Queue Klasse, die leer ist, wird die angegebene anfängliche Kapazität verfügt und den angegebenen Zuwachsfaktor verwendet.

NameBeschreibung
System_CAPS_pubpropertyCount

Ruft die Anzahl der Elemente ab, die in Queue enthalten sind.

System_CAPS_pubpropertyIsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf die Queue synchronisiert (threadsicher) ist.

System_CAPS_pubpropertySyncRoot

Ruft ein Objekt ab, mit dem der Zugriff auf Queue synchronisiert werden kann.

NameBeschreibung
System_CAPS_pubmethodClear()

Entfernt alle Objekte aus dem Queue.

System_CAPS_pubmethodClone()

Erstellt eine flache Kopie von Queue.

System_CAPS_pubmethodContains(Object)

Bestimmt, ob sich ein Element in Queue befindet.

System_CAPS_pubmethodCopyTo(Array, Int32)

Kopiert die Queue-Elemente in ein vorhandenes eindimensionales Array, beginnend beim angegebenen Arrayindex.

System_CAPS_pubmethodDequeue()

Entfernt das Objekt am Anfang der Queue und gibt es zurück.

System_CAPS_pubmethodEnqueue(Object)

Fügt am Ende der Queue ein Objekt hinzu.

System_CAPS_pubmethodEquals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.(Geerbt von „Object“.)

System_CAPS_protmethodFinalize()

Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Geerbt von „Object“.)

System_CAPS_pubmethodGetEnumerator()

Gibt einen Enumerator zurück, der die Queue durchläuft.

System_CAPS_pubmethodGetHashCode()

Fungiert als die Standardhashfunktion.(Geerbt von „Object“.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_protmethodMemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.(Geerbt von „Object“.)

System_CAPS_pubmethodPeek()

Gibt das Objekt am Anfang der Queue zurück, ohne es zu entfernen.

System_CAPS_pubmethodSystem_CAPS_staticSynchronized(Queue)

Gibt eine neue Queue die die ursprüngliche Warteschlange umschließt und threadsicher ist.

System_CAPS_pubmethodToArray()

Kopiert die Queue-Elemente in ein neues Array.

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

System_CAPS_pubmethodTrimToSize()

Legt die Kapazität auf die Anzahl der tatsächlich in der Queue enthaltenen Elemente fest.

NameBeschreibung
System_CAPS_pubmethodAsParallel()

Überladen. Ermöglicht die Parallelisierung einer Abfrage.(Definiert durch ParallelEnumerable.)

System_CAPS_pubmethodAsQueryable()

Überladen. Konvertiert ein IEnumerable zu einer IQueryable.(Definiert durch Queryable.)

System_CAPS_pubmethodCast<TResult>()

Wandelt die Elemente einer IEnumerable in den angegebenen Typ.(Definiert durch Enumerable.)

System_CAPS_pubmethodOfType<TResult>()

Filtert die Elemente einer IEnumerable auf Grundlage eines angegebenen Typs.(Definiert durch Enumerable.)

Diese Klasse implementiert eine Warteschlange als zirkuläre Array. In gespeicherte Objekte einer Queue an einem Ende eingefügt und am anderen entfernt werden.

Warteschlangen und Stapel sind nützlich, wenn ein temporären Speicher für Informationen benötigt; d. h., wenn Sie möchten möglicherweise ein Element verworfen, sobald dessen Wert abgerufen. Verwendung Queue Sie ggf. den Zugriff auf Informationen in der gleichen Reihenfolge in der Auflistung gespeichert wird. Verwendung Stack gegebenenfalls in umgekehrter Reihenfolge auf die Informationen zugreifen. Verwendung ConcurrentQueue<T> oder ConcurrentStack<T> Wenn Sie die Auflistung von mehreren Threads gleichzeitig zugreifen müssen.

Drei wichtigste Operationen ausgeführt werden können, auf eine Queue und seine Elemente:

  • Enqueue Fügt ein Element am Ende der Queue.

  • Dequeue Entfernt das älteste Element vom Anfang der Queue.

  • Peek Gibt das älteste Element am Anfang der Queue jedoch nicht aus entfernt die Queue.

Die Kapazität einer Queue ist die Anzahl der Elemente der Queue aufnehmen kann. Elemente hinzugefügt werden, um eine Queue, die Kapazität wird automatisch erhöht je nach Bedarf durch die Neubelegung. Die Kapazität verringert werden kann, durch Aufrufen von TrimToSize.

Der Zuwachsfaktor ist die Zahl, mit der die aktuelle Kapazität multipliziert wird, wenn eine höhere Kapazität erforderlich ist. Der Zuwachsfaktor wird bestimmt, wenn der Queue erstellt wird. Der Standardzuwachsfaktor ist 2.0. Die Kapazität der Queue wird immer durch mindestens 4, unabhängig von der Zuwachsfaktor erhöht. Z. B. eine Queue mit einem Zuwachsfaktor von 1.0 wird immer erhöht, Kapazität von vier eine höhere Kapazität erforderlich ist.

Queue akzeptiert null als gültigen Wert und lässt doppelte Elemente.

Die generische Version dieser Auflistung finden Sie unter System.Collections.Generic.Queue<T>

Das folgende Beispiel zeigt das Erstellen und Hinzufügen von Werten für eine Queue und wie Sie die entsprechenden Werte ausgegeben.

 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    !
*/ 

Universelle Windows-Plattform
Verfügbar seit 10
.NET Framework
Verfügbar seit 1.1

Öffentliche statische (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Um die Threadsicherheit der Queue, müssen alle Operationen über den Wrapper zurückgegebene ausgeführt werden die Synchronized Methode.

Die Enumeration einer Auflistung ist systemintern keine threadsichere Prozedur. Selbst wenn eine Auflistung synchronisiert wird, besteht die Möglichkeit, dass andere Threads sie ändern. Dies führt dazu, dass der Enumerator eine Ausnahme auslöst. Um während der Enumeration Threadsicherheit zu gewährleisten, können Sie entweder die Auflistung während der gesamten Enumeration sperren oder die Ausnahmen, die aus von anderen Threads stammenden Änderungen resultieren, abfangen.

Zurück zum Anfang
Anzeigen: