Freigeben über


MessageQueue.GetMessageEnumerator-Methode

HINWEIS: Diese Methode ist mittlerweile veraltet.

Erstellt ein Enumerationsobjekt für alle Meldungen in der Warteschlange. GetMessageEnumerator ist veraltet. Stattdessen sollte GetMessageEnumerator2 verwendet werden.

Namespace: System.Messaging
Assembly: System.Messaging (in system.messaging.dll)

Syntax

'Declaration
<ObsoleteAttribute("This method returns a MessageEnumerator that implements RemoveCurrent family of methods incorrectly. Please use GetMessageEnumerator2 instead.")> _
Public Function GetMessageEnumerator As MessageEnumerator
'Usage
Dim instance As MessageQueue
Dim returnValue As MessageEnumerator

returnValue = instance.GetMessageEnumerator
[ObsoleteAttribute("This method returns a MessageEnumerator that implements RemoveCurrent family of methods incorrectly. Please use GetMessageEnumerator2 instead.")] 
public MessageEnumerator GetMessageEnumerator ()
[ObsoleteAttribute(L"This method returns a MessageEnumerator that implements RemoveCurrent family of methods incorrectly. Please use GetMessageEnumerator2 instead.")] 
public:
MessageEnumerator^ GetMessageEnumerator ()
/** @attribute ObsoleteAttribute("This method returns a MessageEnumerator that implements RemoveCurrent family of methods incorrectly. Please use GetMessageEnumerator2 instead.") */ 
public MessageEnumerator GetMessageEnumerator ()
ObsoleteAttribute("This method returns a MessageEnumerator that implements RemoveCurrent family of methods incorrectly. Please use GetMessageEnumerator2 instead.") 
public function GetMessageEnumerator () : MessageEnumerator

Rückgabewert

Ein MessageEnumerator mit den in der Warteschlange enthaltenen Meldungen.

Hinweise

GetMessageEnumerator erstellt eine dynamische Liste aller Meldungen in einer Warteschlange. Sie können die Meldung an der aktuellen Position im Enumerator aus der Warteschlange entfernen, indem Sie für den von GetMessageEnumerator zurückgegebenen MessageEnumeratorRemoveCurrent aufrufen.

Da der Cursor der dynamischen Liste der Meldungen in der Warteschlange zugeordnet ist, gibt die Enumeration alle Änderungen an Meldungen in der Warteschlange wieder, die sich hinter der aktuellen Cursorposition befinden. Der Enumerator kann beispielsweise automatisch auf eine hinter der aktuellen Cursorposition eingefügte Meldung niedrigerer Priorität zugreifen, nicht jedoch auf eine Meldung höherer Priorität, die vor dieser Position eingefügt wurde. Sie können die Enumeration jedoch zurücksetzen und so den Cursor wieder auf den Anfang der Liste platzieren, indem Sie Reset für den MessageEnumerator aufrufen.

Die Reihenfolge der Meldungen in der Enumeration entspricht der Reihenfolge in der Warteschlange. Meldungen höherer Priorität werden also vor Meldungen niedrigerer Priorität aufgeführt.

Wenn Sie anstelle einer dynamischen Verbindung mit den Meldungen einen statischen Snapshot verwenden möchten, rufen Sie GetAllMessages auf. Diese Methode gibt ein Array von Message-Objekten zurück, die die Meldungen zum Zeitpunkt des Methodenaufrufs darstellen.

Der folgenden Tabelle können Sie entnehmen, ob diese Methode in verschiedenen Arbeitsgruppenmodi verfügbar ist.

Arbeitsgruppenmodus

Verfügbar

Lokaler Computer

Ja

Lokaler Computer + direkter Formatname

Ja

Remotecomputer

Ja

Lokaler Computer + direkter Formatname

Ja

Beispiel

Im folgenden Beispiel wird eine dynamische Liste von Meldungen in einer Warteschlange abgerufen, und es werden alle Meldungen gezählt, deren Priority-Eigenschaft auf MessagePriority.Lowest festgelegt ist.

Imports System
Imports System.Messaging

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 Shared Sub Main()

            ' Create a new instance of the class.
            Dim myNewQueue As New MyNewQueue()

            ' Output the count of Lowest priority messages.
            myNewQueue.CountLowestPriority()

            Return

        End Sub 'Main


        
        ' Iterates through messages in a queue and examines
        ' their priority.
        

        Public Sub CountLowestPriority()

            ' Holds the count of Lowest priority messages.
            Dim numberItems As Int32 = 0

            ' Connect to a queue.
            Dim myQueue As New MessageQueue(".\myQueue")

            ' Get a cursor into the messages in the queue.
            Dim myEnumerator As MessageEnumerator = _
                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 the priority is Lowest.
                If myEnumerator.Current.Priority = _
                    MessagePriority.Lowest Then
                    numberItems += 1
                End If

            End While

            ' Display final count.
            Console.WriteLine(("Lowest priority messages: " + _
                numberItems.ToString()))

            Return

        End Sub 'CountLowestPriority

End Class 'MyNewQueue
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;
        }
    }
}
#using <system.dll>
#using <system.messaging.dll>

using namespace System;
using namespace System::Messaging;
ref class MyNewQueue
{
public:
   void CountLowestPriority()
   {
      
      // Holds the count of Lowest priority messages.
      UInt32 numberItems = 0;
      
      // Connect to a queue.
      MessageQueue^ myQueue = gcnew 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: {0}", numberItems );
      return;
   }

};

int main()
{
   
   // Create a new instance of the class.
   MyNewQueue^ myNewQueue = gcnew MyNewQueue;
   
   // Output the count of Lowest priority messages.
   myNewQueue->CountLowestPriority();
   return 0;
}
package MyProject;

import System.*;
import System.Messaging.*;

/// <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(String[] args)
    {
        // Create a new instance of the class.
        MyNewQueue myNewQueue = new MyNewQueue();
        // Output the count of Lowest priority messages.
        myNewQueue.CountLowestPriority();
        return;
    } //main

    //**************************************************
    // Iterates through messages in a queue and examines
    // their priority.
    //**************************************************
    public void CountLowestPriority()
    {
        // Holds the count of Lowest priority messages.
        long 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.get_MessageReadPropertyFilter().set_Priority(true);
        // Move to the next message and examine its priority.
        while (myEnumerator.MoveNext()) {
            // Increase the count if priority is Lowest.
            if (myEnumerator.get_Current().get_Priority().
                Equals(MessagePriority.Lowest)) {
                numberItems++;
            }
        }
        // Display final count.
        Console.WriteLine("Lowest priority messages: "
            + ((Int32)numberItems).ToString());
        return;
    } //CountLowestPriority
} //MyNewQueue

.NET Framework-Sicherheit

  • Volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden. Weitere Informationen finden Sie unter .

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 1.0, 1.1
Veraltet (Compilerwarnung) in 2.0

.NET Compact Framework

Veraltet (Compilerwarnung) in 2.0

Siehe auch

Referenz

MessageQueue-Klasse
MessageQueue-Member
System.Messaging-Namespace
GetAllMessages
GetMessageEnumerator2
GetMessageQueueEnumerator