Freigeben über


SO WIRD'S GEMACHT: Abrufen von Warteschlangen

Dieser Dokumentation für die Vorschau nur ist und in späteren Versionen geändert. Leere Themen wurden als Platzhalter eingefügt.]

Entweder statische oder dynamische abrufen Mechanismen können Sie eine Liste mit Warteschlangen abrufen. Wenn Sie eine statische Liste mit Warteschlangen abrufen, gibt das System ein MessageQueue-Objekt mit den Ergebnissen der Abfrage zurück. Wenn Sie eine dynamische Liste mit Warteschlangen abrufen, gibt das System ein MessageQueueEnumerator-Objekt mit den Ergebnissen der Abfrage zurück.

Im Gegensatz zu der MessageEnumerator, die Meldungen entsprechend ihrer Reihenfolge in einer Warteschlange zurückgibt zurück keine MessageQueueEnumerator Warteschlangen in beliebiger Reihenfolge. Dies ist da Warteschlangen in einem Netzwerk nicht in der Reihenfolge definiert sind – Sie sind nicht sortiert, d. h., nach Computer, Bezeichnung oder andere Benutzer zugänglichen Kriterien. Sie können den Cursor auf die erste Warteschlange der Enumeration durch Aufrufen der Methode MoveNext verschieben. Nachdem der Enumerator initialisiert wurde, können Sie MoveNext zu Schritt vorwärts durch die verbleibenden Warteschlangen.

Es ist nicht möglich, Schritt, die mit einem MessageQueueEnumerator rückwärts. Ein Cursor kann nur Vorwärtsbildlauf über die Warteschlange-Enumeration. Allerdings können Sie die Reset-Methode zum Zurücksetzen der Enumeration und platzieren des Cursors am Anfang der Liste erneut aufrufen. Da ein Enumerator dynamisch ist, kann er auf eine Warteschlange zugreifen, die außerhalb der aktuellen Cursorposition angefügt wird. Eine Warteschlange, die vor der aktuellen Cursorposition eingefügt wird, kann nicht ohne ersten aufrufenden Reset zugegriffen werden.

Da die GetPublicQueues, GetPrivateQueuesByMachineund GetMessageQueueEnumerator Methoden statisch sind, müssen Sie eine Instanz der Klasse MessageQueue erstellen, bevor die Methode aufrufen.

Um eine statische Liste öffentliche oder private Warteschlangen abzurufen

  1. Erstellen Sie ein Array vom Typ MessageQueue für die Ergebnisse der Abfrage.

  2. Rufen Sie die entsprechende Methode der MessageQueue-Klasse auf:

    • Rufen Sie zum Abrufen aller öffentlicher Warteschlangen ohne Kriterien die GetPublicQueues-Methode auf.

    • Um öffentliche Warteschlangen mit Kriterien abzurufen, legen Sie den Criteria -Parameter auf den entsprechenden Wert, und rufen Sie die Methode GetPrivateQueuesByMachine.

    • Um nur die öffentlichen Warteschlangen abzurufen, die eine Kategorie-GUID freigeben, rufen Sie die GetPublicQueuesByCategory--Methode und geben Sie die Kategorie-GUID als die Parameter an.

    • Um nur die öffentlichen Warteschlangen abzurufen, die eine Bezeichnung freigeben, rufen Sie die GetPublicQueuesByLabel-Methode, und geben Sie die Bezeichnung als Parameter.

    • Um nur die öffentlichen Warteschlangen eines bestimmten Computers abzurufen, rufen Sie die GetPublicQueuesByMachine-Methode auf, und geben Sie den Namen des Computers als Parameter.

  3. Das Array die Ergebnisse zuweisen.

    Der folgende Code zeigt beispielsweise, wie Sie ein Listenfeld verwenden können, um die Bezeichnung aller abgerufenen öffentlichen Warteschlangen auf dem lokalen Computer anzuzeigen:

                                Private
                                Sub button1_Click(ByVal sender As System.Object,
       ByVal e As System.EventArgs) Handles button1.Click
        Dim mqlist() As System.Messaging.MessageQueue
        Dim i AsInteger    ' Retrieve queues on the local machine.
        mqlist = System.Messaging.MessageQueue.GetPublicQueuesByMachine(".")
        ' Clear the current contents of the list.Me.ListBox1.Items.Clear()
        ' Display the results.For i = 0 To mqlist.Length - 1
            Me.ListBox1.Items.Add(mqlist(i).Path)
        NextEndSub
    
                                private
                                void button1_Click(System.Object sender, System.EventArgs e)
        {
            System.Messaging.MessageQueue[] mqlist;
            // Retrieve public queues.
            mqlist = System.Messaging.MessageQueue.GetPublicQueuesByMachine(
               ".");
            // Clear the current contents of the list.this.listBox1.Items.Clear();
            // Display the results.for (int i = 0; i < mqlist.Length; i++)
            {
                this.listBox1.Items.Add(mqlist[i].Path);
            }
        }
    

Um eine dynamische Liste von Warteschlangen abzurufen

  1. Erstellen Sie ein MessageQueueEnumerator-Objekt für die Ergebnisse der Abfrage.

  2. Rufen Sie die GetMessageQueueEnumerator -Methode der Klasse MessageQueue.

  3. Um eine Teilmenge der Warteschlangen im Netzwerk abzurufen, legen Sie den MessageQueueCriteria--Parameter auf den entsprechenden Wert fest.

  4. Legen Sie das MessageQueueEnumerator Objekt Sie erstellt das Ergebnis. Der Code könnte wie folgt aussehen:

                                Dim mqEnum As System.Messaging.MessageQueueEnumerator
    mqEnum = System.Messaging.MessageQueue.GetMessageQueueEnumerator()
    
            System.Messaging.MessageQueueEnumerator mqEnum;
            mqEnum = System.Messaging.MessageQueue.GetMessageQueueEnumerator();
    

Siehe auch

Aufgaben

SO WIRD'S GEMACHT: Abrufen von Nachrichten

Konzepte

Warteschlangen- und Meldungsauflistungen