SO WIRD'S GEMACHT: Abrufen von Nachrichten

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 Meldungen abrufen. Wenn Sie eine statische Liste mit Meldungen abrufen, gibt das System ein Array von Message-Objekten, die alle Nachrichten in der Warteschlange darstellen zurück.

Wenn Sie eine dynamische Liste mit Meldungen abrufen, gibt das System eine MessageEnumerator-Objekt zurück, alle Meldungen in der Warteschlange darstellt zurück. Ein MessageEnumerator-Objekt ist ein Cursor, der auf den Anfang einer dynamischen Liste initialisiert. Die Reihenfolge der Liste ist die Reihenfolge der Meldungen in der Warteschlange identisch nach Nachrichtenpriorität. Sie können den Cursor auf die erste Meldung in der Warteschlange verschieben, durch Aufrufen der Methode MoveNext. Nachdem der Enumerator initialisiert wurde, können Sie MoveNext zu Schritt vorwärts durch die verbleibenden Meldungen. Sie können angeben, ob eine Meldung verfügbar ist, einen Timeout an die Methode MoveNext übergeben nicht warten.

Da ein Enumerator dynamisch ist, kann er eine Nachricht zugreifen, die hinter der aktuellen Cursorposition (z. B. aufgrund zu niedriger Priorität) angehängt wird. Der Enumerator kann nicht auf eine Nachricht zugreifen, die vor der aktuellen Cursorposition eingefügt wird. Es ist nicht möglich, Schritt, die mit einem MessageEnumerator rückwärts. Ein Cursor kann nur vorwärts bewegt. Reset-Methode können Sie den Cursor wieder an den Anfang der Warteschlange setzen.

Hinweis

Wenn Sie ein MessageQueueDenySharedReceivetrue So instanziieren, kann keine andere Anwendung die Meldungen im Enumerator ändern, während Sie die Verbindung mit der Warteschlange haben.

Um eine statische Liste von Nachrichten abzurufen

  1. Erstellen Sie eine Instanz der Komponente MessageQueue , und legen Sie seine Path-Eigenschaft auf die Warteschlange auf die Sie verweisen möchten. Weitere Informationen finden Sie unter SO WIRD'S GEMACHT: Erstellen von Instanzen von MessageQueue-Komponenten.

    Hinweis

    Wenn Sie Ihre Komponente von Server-Explorererstellt, wird die Path-Eigenschaft automatisch auf den Pfad dieser Warteschlange festgelegt.

  2. Erstellen Sie ein Array, die Klasse Message, um die Ergebnisse der Abfrage verweist.

  3. Rufen Sie die GetAllMessages-Methode.

  4. Weisen Sie die Ergebnisse in das Array erstellen.

    Der folgende Code veranschaulicht die Verwendung kann der Funktion GetAllMessages die Nachrichten aus einer Warteschlange abrufen und die Meldungsbezeichnungen in einem Listenfeld anzeigen. In diesem Beispiel wird davon ausgegangen, dass eine Instanz der Komponente MessageQueue zur Anwendung hinzugefügt wurde.

                                Private
                                Sub button1_Click(ByVal sender As System.Object,
       ByVal e As System.EventArgs) Handles button1.Click
        Me.MessageQueue1.Path = ".\MyQueue"Dim msg() As System.Messaging.Message
        Dim i AsInteger    ' Retrieve the messages.
        msg = MessageQueue1.GetAllMessages()
        ' Clear the current contents of the list.Me.ListBox1.Items.Clear()
        ' Display the results.For i = 0 To msg.Length - 1
            Me.ListBox1.Items.Add(msg(i).Label)
        NextEndSub
    
                                private
                                void button1_Click(System.Object sender, System.EventArgs e)
        {
            messageQueue1.Path = ".\\MyQueue";
            System.Messaging.Message[] msg;
            // Retrieve the messages.
            msg = messageQueue1.GetAllMessages();
            // Clear the current contents of the list.this.listBox1.Items.Clear();
            // Display the results.for (int i = 0; i < msg.Length; i++)
            {
                this.listBox1.Items.Add(msg[i].Label);
            }
        }
    

Um eine dynamische Liste von Nachrichten abzurufen

  1. Erstellen Sie eine Instanz der Komponente MessageQueue , und legen Sie seine Path-Eigenschaft auf die Warteschlange auf die Sie verweisen möchten. Weitere Informationen finden Sie unter SO WIRD'S GEMACHT: Erstellen von Instanzen von MessageQueue-Komponenten.

    Hinweis

    Wenn Sie Ihre Komponente von Server-Explorererstellt, wird die Path-Eigenschaft automatisch auf den Pfad dieser Warteschlange festgelegt.

  2. Erstellen Sie ein MessageEnumerator-Objekt für die Ergebnisse der Abfrage.

  3. Rufen Sie die GetEnumerator -Methode der Klasse MessageQueue.

  4. Weisen Sie die Ergebnisse für das MessageEnumerator-Objekt. Der Code könnte wie folgt aussehen:

                                Dim mq AsNew System.Messaging.MessageQueue(".\MyQueue")
    Dim msgEnum As System.Messaging.MessageEnumerator
    msgEnum = CType(mq.GetMessageEnumerator2, System.Messaging.MessageEnumerator)
    
            System.Messaging.MessageQueue mq = new System.Messaging.MessageQueue();
            System.Messaging.MessageEnumerator msgEnum;
            mq.Path = @".\MyQueue";
            msgEnum = (System.Messaging.MessageEnumerator)(mq.GetMessageEnumerator2());
    
    

Siehe auch

Aufgaben

SO WIRD'S GEMACHT: Abrufen von Warteschlangen

Konzepte

Warteschlangen- und Meldungsauflistungen