Freigeben über


MessageQueue.GetMessageQueueEnumerator Methode

Definition

Erstellt ein Enumerationsobjekt für eine dynamische Liste der öffentlichen Warteschlangen im Netzwerk.

Überlädt

GetMessageQueueEnumerator()

Stellt eine Vorwärts-Cursorsemantik zum Durchlaufen aller öffentlichen Warteschlangen im Netzwerk bereit.

GetMessageQueueEnumerator(MessageQueueCriteria)

Stellt eine Vorwärts-Cursorsemantik zum Durchlaufen aller öffentlichen Warteschlangen im Netzwerk bereit, die die angegebenen Kriterien erfüllen.

GetMessageQueueEnumerator()

Stellt eine Vorwärts-Cursorsemantik zum Durchlaufen aller öffentlichen Warteschlangen im Netzwerk bereit.

public:
 static System::Messaging::MessageQueueEnumerator ^ GetMessageQueueEnumerator();
public static System.Messaging.MessageQueueEnumerator GetMessageQueueEnumerator ();
static member GetMessageQueueEnumerator : unit -> System.Messaging.MessageQueueEnumerator
Public Shared Function GetMessageQueueEnumerator () As MessageQueueEnumerator

Gibt zurück

Ein MessageQueueEnumerator, der eine dynamische Liste aller öffentlichen Meldungswarteschlangen im Netzwerk bereitstellt.

Beispiele

Das folgende Codebeispiel durchläuft alle Nachrichtenwarteschlangen im Netzwerk und untersucht den Pfad für jede Warteschlange. Schließlich wird die Anzahl der öffentlichen Warteschlangen im Netzwerk angezeigt.

#using <System.dll>
#using <System.Messaging.dll>

using namespace System;
using namespace System::Messaging;

//**************************************************
// Iterates through message queues and examines the
// path for each queue. Also displays the number of
// public queues on the network.
//**************************************************
void ListPublicQueues()
{
   
   // Holds the count of private queues.
   int numberQueues = 0;
   
   // Get a cursor into the queues on the network.
   MessageQueueEnumerator^ myQueueEnumerator = MessageQueue::GetMessageQueueEnumerator();
   
   // Move to the next queue and read its path.
   while ( myQueueEnumerator->MoveNext() )
   {
      
      // Increase the count if priority is Lowest.
      Console::WriteLine( myQueueEnumerator->Current->Path );
      numberQueues++;
   }

   
   // Display final count.
   Console::WriteLine( "Number of public queues: {0}", numberQueues );
   return;
}


//**************************************************
// Provides an entry point into the application.
//   
// This example uses a cursor to step through the
// message queues and list the public queues on the
// network.
//**************************************************
int main()
{
   
   // Output the count of Lowest priority messages.
   ListPublicQueues();
}
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
        // message queues and list the public queues on the
        // network.
        //**************************************************

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

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

        //**************************************************
        // Iterates through message queues and examines the
        // path for each queue. Also displays the number of
        // public queues on the network.
        //**************************************************
        
        public void ListPublicQueues()
        {
            // Holds the count of private queues.
            uint numberQueues = 0;
    
            // Get a cursor into the queues on the network.
            MessageQueueEnumerator myQueueEnumerator =
                MessageQueue.GetMessageQueueEnumerator();

            // Move to the next queue and read its path.
            while(myQueueEnumerator.MoveNext())
            {
                // Increase the count if priority is Lowest.
                Console.WriteLine(myQueueEnumerator.Current.Path);
                numberQueues++;
            }

            // Display final count.
            Console.WriteLine("Number of public queues: " +
                numberQueues.ToString());
            
            return;
        }
    }
}
Imports System.Messaging



Public Class MyNewQueue


        
        ' Provides an entry point into the application.
        '		 
        ' This example uses a cursor to step through the
        ' message queues and list the public queues on the
        ' network.
        

        Public Shared Sub Main()

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

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

            Return

        End Sub


        
        ' Iterates through message queues and examines the
        ' path for each queue. Also displays the number of
        ' public queues on the network.
        

        Public Sub ListPublicQueues()

            ' Holds the count of private queues.
            Dim numberQueues As Int32 = 0

            ' Get a cursor into the queues on the network.
            Dim myQueueEnumerator As MessageQueueEnumerator = _
                MessageQueue.GetMessageQueueEnumerator()

            ' Move to the next queue and read its path.
            While myQueueEnumerator.MoveNext()
                ' Increase the count if the priority is Lowest.
                Console.WriteLine(myQueueEnumerator.Current.Path)
                numberQueues += 1
            End While

            ' Display final count.
            Console.WriteLine(("Number of public queues: " + _
                numberQueues.ToString()))

            Return

        End Sub

End Class

Hinweise

Diese Überladung von GetMessageQueueEnumerator gibt eine Enumeration aller öffentlichen Warteschlangen zurück, die sich im Netzwerk befinden.

Da der Cursor einer dynamischen Auflistung zugeordnet ist, spiegelt die Enumeration alle Änderungen wider, die Sie an einer Warteschlangenliste für Warteschlangen vornehmen, die über die aktuelle Position des Cursors hinaus gelöscht oder hinzugefügt werden. Das Hinzufügen oder Löschen von Warteschlangen, die sich vor der aktuellen Position des Cursors befinden, werden nicht widerspiegelt. Beispielsweise kann der Enumerator automatisch auf eine Warteschlange zugreifen, die über die Cursorposition hinaus angefügt wird, aber nicht auf eine Warteschlange, die vor dieser Position eingefügt wurde. Sie können die Enumeration jedoch zurücksetzen und dadurch den Cursor zurück an den Anfang der Liste verschieben, indem Sie nach MessageQueueEnumeratoraufrufenReset.

Es gibt keine definierte Reihenfolge von Warteschlangen in einem Netzwerk. Ein Enumerator sortiert sie nicht, z. B. nach Computer, Bezeichnung, öffentliche oder private status oder andere zugängliche Kriterien.

Wenn Sie eine statische Momentaufnahme der Warteschlangen im Netzwerk anstelle einer dynamischen Verbindung mit ihnen wünschen, rufen Sie GetPublicQueues oder GetPrivateQueuesByMachine(String)auf. Jede dieser beiden Methoden gibt ein Array von MessageQueue Objekten zurück, die die Warteschlangen zum Zeitpunkt des Aufrufs der Methode darstellen.

Die folgende Tabelle zeigt, ob diese Methode in verschiedenen Arbeitsgruppenmodi verfügbar ist.

Arbeitsgruppenmodus Verfügbar
Lokalem Computer Nein
Name des lokalen Computers und des direkten Formats Nein
Remotecomputer Nein
Name des Remotecomputers und des direkten Formats Nein

Weitere Informationen

Gilt für:

GetMessageQueueEnumerator(MessageQueueCriteria)

Stellt eine Vorwärts-Cursorsemantik zum Durchlaufen aller öffentlichen Warteschlangen im Netzwerk bereit, die die angegebenen Kriterien erfüllen.

public:
 static System::Messaging::MessageQueueEnumerator ^ GetMessageQueueEnumerator(System::Messaging::MessageQueueCriteria ^ criteria);
public static System.Messaging.MessageQueueEnumerator GetMessageQueueEnumerator (System.Messaging.MessageQueueCriteria criteria);
static member GetMessageQueueEnumerator : System.Messaging.MessageQueueCriteria -> System.Messaging.MessageQueueEnumerator
Public Shared Function GetMessageQueueEnumerator (criteria As MessageQueueCriteria) As MessageQueueEnumerator

Parameter

criteria
MessageQueueCriteria

Ein MessageQueueCriteria, das die Kriterien zum Filtern der verfügbaren Meldungswarteschlangen enthält.

Gibt zurück

Ein MessageQueueEnumerator, der eine dynamische Liste der öffentlichen Meldungswarteschlangen im Netzwerk bereitstellt, die die im criteria-Parameter angegebenen Bedingungen erfüllen.

Beispiele

Das folgende Codebeispiel durchläuft Nachrichtenwarteschlangen und zeigt den Pfad jeder Warteschlange an, die am letzten Tag erstellt wurde und die auf dem Computer "MyComputer" vorhanden ist.

#using <system.dll>
#using <system.messaging.dll>

using namespace System;
using namespace System::Messaging;
ref class MyNewQueue
{
public:

   // Iterates through message queues and displays the
   // path of each queue that was created in the last
   // day and that exists on the computer "MyComputer". 
   void ListPublicQueuesByCriteria()
   {
      UInt32 numberQueues = 0;
      
      // Specify the criteria to filter by.
      MessageQueueCriteria^ myCriteria = gcnew MessageQueueCriteria;
      myCriteria->MachineName = "MyComputer";
      myCriteria->CreatedAfter = DateTime::Now.Subtract( TimeSpan(1,0,0,0) );
      
      // Get a cursor into the queues on the network.
      MessageQueueEnumerator^ myQueueEnumerator = MessageQueue::GetMessageQueueEnumerator( myCriteria );
      
      // Move to the next queue and read its path.
      while ( myQueueEnumerator->MoveNext() )
      {
         
         // Increase the count if priority is Lowest.
         Console::WriteLine( myQueueEnumerator->Current->Path );
         numberQueues++;
      }

      
      // Handle no queues matching the criteria.
      if ( numberQueues == 0 )
      {
         Console::WriteLine( "No public queues match criteria." );
      }

      return;
   }

};

int main()
{
   
   // Create a new instance of the class.
   MyNewQueue^ myNewQueue = gcnew MyNewQueue;
   
   // Output the count of Lowest priority messages.
   myNewQueue->ListPublicQueuesByCriteria();
   return 0;
}
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
        // message queues and list the public queues on the
        // network that specify certain criteria.
        //**************************************************

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

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

        //**************************************************
        // Iterates through message queues and displays the
        // path of each queue that was created in the last
        // day and that exists on the computer "MyComputer".
        //**************************************************
        
        public void ListPublicQueuesByCriteria()
        {
            uint numberQueues = 0;
            
            // Specify the criteria to filter by.
            MessageQueueCriteria myCriteria = new
                MessageQueueCriteria();
            myCriteria.MachineName = "MyComputer";
            myCriteria.CreatedAfter = DateTime.Now.Subtract(new
                TimeSpan(1,0,0,0));

            // Get a cursor into the queues on the network.
            MessageQueueEnumerator myQueueEnumerator =
                MessageQueue.GetMessageQueueEnumerator(myCriteria);

            // Move to the next queue and read its path.
            while(myQueueEnumerator.MoveNext())
            {
                // Increase the count if priority is Lowest.
                Console.WriteLine(myQueueEnumerator.Current.Path);
                numberQueues++;
            }

            // Handle no queues matching the criteria.
            if (numberQueues == 0)
            {
                Console.WriteLine("No public queues match criteria.");
            }

            return;
        }
    }
}
Imports System.Messaging

 
Public Class MyNewQueue


        '
        ' Provides an entry point into the application.
        '		 
        ' This example uses a cursor to step through the
        ' message queues and list the public queues on the
        ' network that specify certain criteria.
        

        Public Shared Sub Main()

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

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

            Return

        End Sub


        
        ' Iterates through message queues and displays the
        ' path of each queue that was created in the last
        ' day and that exists on the computer "MyComputer". 
        

        Public Sub ListPublicQueuesByCriteria()

            Dim numberQueues As Int32 = 0

            ' Specify the criteria to filter by.
            Dim myCriteria As New MessageQueueCriteria()
            myCriteria.MachineName = "MyComputer"
            myCriteria.CreatedAfter = DateTime.Now.Subtract(New _
                TimeSpan(1, 0, 0, 0))


            ' Get a cursor into the queues on the network.
            Dim myQueueEnumerator As MessageQueueEnumerator = _
                MessageQueue.GetMessageQueueEnumerator(myCriteria)

            ' Move to the next queue and read its path.
            While myQueueEnumerator.MoveNext()
                ' Increase the count if the priority is Lowest.
                Console.WriteLine(myQueueEnumerator.Current.Path)
                numberQueues += 1
            End While

            ' Handle no queues matching the criteria.
            If numberQueues = 0 Then
                Console.WriteLine("No queues match the criteria.")
            End If

            Return

        End Sub

End Class

Hinweise

Diese Überladung von GetMessageQueueEnumerator gibt eine Liste aller öffentlichen Warteschlangen im Netzwerk zurück, die die in den Anwendungskriterien definierten Kriterien erfüllen. Sie können die Kriterien angeben, die beispielsweise die Erstellungs- oder Änderungszeit der Warteschlange, den Computernamen, die Bezeichnung, die Kategorie oder eine beliebige Kombination dieser Kriterien umfassen sollen.

Da der Cursor einer dynamischen Auflistung zugeordnet ist, spiegelt die Enumeration jede Änderung wider, die Sie an einer Warteschlange vornehmen, die über die aktuelle Position des Cursors hinaus erfolgt. Änderungen an Warteschlangen, die sich vor der aktuellen Position des Cursors befinden, werden nicht widerspiegelt. Beispielsweise kann der Enumerator automatisch auf eine Warteschlange zugreifen, die über die Cursorposition hinaus angefügt wird, aber nicht auf eine Warteschlange, die vor dieser Position eingefügt wurde. Sie können die Enumeration jedoch zurücksetzen und dadurch den Cursor zurück an den Anfang der Liste verschieben, indem Sie nach MessageQueueEnumeratoraufrufenReset.

Es gibt keine definierte Reihenfolge von Warteschlangen in einem Netzwerk. Ein Enumerator sortiert sie nicht, z. B. nach Computer, Bezeichnung, öffentliche oder private status oder andere zugängliche Kriterien.

Wenn Sie eine statische Momentaufnahme der Warteschlangen im Netzwerk anstelle einer dynamischen Verbindung mit ihnen wünschen, geben Sie Kriterien für GetPublicQueues an, oder rufen Sie auf GetPrivateQueuesByMachine(String). Jede dieser beiden Methoden gibt ein Array von MessageQueue Objekten zurück, die die Warteschlangen zum Zeitpunkt des Aufrufs der Methode darstellen. Aufrufen von GetPublicQueuesByCategory(Guid), GetPublicQueuesByLabel(String), oder GetPublicQueuesByMachine(String) bietet die gleichen Ergebnisse wie das Aufrufen GetPublicQueues mit den Filterkriterien des Category, Label, und MachineNamebzw.

Die folgende Tabelle zeigt, ob diese Methode in verschiedenen Arbeitsgruppenmodi verfügbar ist.

Arbeitsgruppenmodus Verfügbar
Lokalem Computer Nein
Name des lokalen Computers und des direkten Formats Nein
Remotecomputer Nein
Name des Remotecomputers und des direkten Formats Nein

Weitere Informationen

Gilt für: