MessageQueue.GetMessageEnumerator Metoda

Definice

Upozornění

This method returns a MessageEnumerator that implements RemoveCurrent family of methods incorrectly. Please use GetMessageEnumerator2 instead.

Vytvoří objekt enumerátoru pro všechny zprávy ve frontě. GetMessageEnumerator() je zastaralý. GetMessageEnumerator2() místo toho by měl být použit.

public System.Messaging.MessageEnumerator GetMessageEnumerator ();
[System.Obsolete("This method returns a MessageEnumerator that implements RemoveCurrent family of methods incorrectly. Please use GetMessageEnumerator2 instead.")]
public System.Messaging.MessageEnumerator GetMessageEnumerator ();

Návraty

Uložení MessageEnumerator zpráv, které jsou obsaženy ve frontě.

Atributy

Příklady

Následující příklad kódu získá dynamický seznam zpráv ve frontě a spočítá všechny zprávy s vlastností nastavenou Priority na MessagePriority.Lowest.

using System;
using System.Messaging;

namespace MyProject
{
    /// <summary>
    /// Provides a container class for the example.
    /// </summary>
    public class MyNewQueue
    {

        //**************************************************
        // Provides an entry point into the application.
        //		
        // This example uses a cursor to step through the
        // messages in a queue and counts the number of
        // Lowest priority messages.
        //**************************************************

        public static void Main()
        {
            // Create a new instance of the class.
            MyNewQueue myNewQueue = new MyNewQueue();

            // Output the count of Lowest priority messages.
            myNewQueue.CountLowestPriority();
                        
            return;
        }

        //**************************************************
        // Iterates through messages in a queue and examines
        // their priority.
        //**************************************************
        
        public void CountLowestPriority()
        {
            // Holds the count of Lowest priority messages.
            uint numberItems = 0;

            // Connect to a queue.
            MessageQueue myQueue = new MessageQueue(".\\myQueue");
    
            // Get a cursor into the messages in the queue.
            MessageEnumerator myEnumerator =
                myQueue.GetMessageEnumerator();

            // Specify that the messages's priority should be read.
            myQueue.MessageReadPropertyFilter.Priority = true;

            // Move to the next message and examine its priority.
            while(myEnumerator.MoveNext())
            {
                // Increase the count if priority is Lowest.
                if(myEnumerator.Current.Priority ==
                    MessagePriority.Lowest)
                    
                    numberItems++;
            }

            // Display final count.
            Console.WriteLine("Lowest priority messages: " +
                numberItems.ToString());
            
            return;
        }
    }
}

Poznámky

GetMessageEnumerator vytvoří dynamický seznam všech zpráv ve frontě. Můžete odebrat z fronty zprávu na aktuální pozici enumerátoru voláním RemoveCurrentMessageEnumerator , která GetMessageEnumerator vrací.

Vzhledem k tomu, že kurzor je přidružen k dynamickému seznamu zpráv ve frontě, výčet odráží všechny změny, které provedete ve zprávách ve frontě, pokud je zpráva mimo aktuální pozici kurzoru. Enumerátor může například automaticky přistupovat ke zprávě s nižší prioritou umístěnou mimo aktuální pozici kurzoru, ale ne ke zprávě s vyšší prioritou vloženou před tuto pozici. Můžete však resetovat výčet, čímž přesunete kurzor zpět na začátek seznamu voláním ResetMessageEnumerator.

Pořadí zpráv ve výčtu odráží jejich pořadí ve frontě, takže zprávy s vyšší prioritou se zobrazí před zprávami s nižší prioritou.

Pokud chcete statický snímek zpráv ve frontě místo dynamického připojení k nim, zavolejte GetAllMessages. Tato metoda vrátí pole Message objektů, které představují zprávy v době volání metody.

Následující tabulka ukazuje, zda je tato metoda k dispozici v různých režimech pracovní skupiny.

Režim pracovní skupiny K dispozici.
Místní počítač Yes
Název místního počítače a přímého formátu Yes
Vzdálený počítač Yes
Název vzdáleného počítače a přímého formátu Yes

Platí pro

Produkt Verze (zastaralé)
.NET Framework 1.1 (2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1)

Viz také