MessageQueue.GetMessageQueueEnumerator Метод

Определение

Создает объект перечислителя для динамического списка общих очередей сети.Creates an enumerator object for a dynamic listing of the public queues on the network.

Перегрузки

GetMessageQueueEnumerator()

Обеспечивает семантику курсора последовательного доступа для перечисления во всех общих очередях сети.Provides forward-only cursor semantics to enumerate through all public queues on the network.

GetMessageQueueEnumerator(MessageQueueCriteria)

Обеспечивает семантику курсора последовательного доступа для перечисления во всех общих очередях сети, удовлетворяющих указанным критериям.Provides forward-only cursor semantics to enumerate through all public queues on the network that meet the specified criteria.

GetMessageQueueEnumerator()

Обеспечивает семантику курсора последовательного доступа для перечисления во всех общих очередях сети.Provides forward-only cursor semantics to enumerate through all public queues on the network.

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

Возвраты

Объект MessageQueueEnumerator, обеспечивающий динамическое перечисление всех общих очередей сообщений в сети.A MessageQueueEnumerator that provides a dynamic listing of all the public message queues on the network.

Примеры

В следующем примере кода выполняется перебор всех очередей сообщений в сети и проверяется путь для каждой очереди.The following code example iterates through all the message queues in the network, and examines the path for each queue. И, наконец, отображается число общих очередей в сети.Finally, it displays the number of public queues on the network.

#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

Комментарии

Эта перегрузка метода GetMessageQueueEnumerator возвращает перечисление всех публичных очередей, наявляющихся в сети.This overload of GetMessageQueueEnumerator returns an enumeration of all the public queues that are on the network.

Так как курсор связан с динамическим списком, перечисление отражает любые изменения, вносимые в список очередей для очередей, удаленных или добавленных за текущую позицию курсора.Because the cursor is associated with a dynamic listing, the enumeration reflects any modification you make to a queue list for queues deleted or added beyond the cursor's current position. Добавление или удаление очередей, расположенных перед текущей позицией курсора, не отражается.Additions or deletion of queues located before the cursor's current position are not reflected. Например, перечислитель может автоматически получить доступ к очереди, добавленной за пределами курсора, но не одну до этой позиции.For example, the enumerator can automatically access a queue appended beyond the cursor position but not one inserted before that position. Однако можно сбросить перечисление, таким образом переместив курсор обратно в начало списка, вызвав метод Reset MessageQueueEnumeratorдля.However, you can reset the enumeration, thereby moving the cursor back to the beginning of the list, by calling Reset for the MessageQueueEnumerator.

В сети не определено упорядочение очередей.There is no defined ordering of queues in a network. Перечислитель не упорядочивает их, например, по компьютеру, метке, общедоступному или частному состоянию или любым другим критериям, доступным для использования.An enumerator does not order them, for example, by computer, label, public or private status, or any other accessible criteria.

Если требуется статический моментальный снимок очередей в сети, а не динамическое подключение к ним, вызовите GetPublicQueues или GetPrivateQueuesByMachine(String).If you want a static snapshot of the queues on the network rather than a dynamic connection to them, call GetPublicQueues or GetPrivateQueuesByMachine(String). Каждый из этих двух методов возвращает массив MessageQueue объектов, которые представляют очереди на момент вызова метода.Each of these two methods returns an array of MessageQueue objects, which represent the queues at the time the method was called.

В следующей таблице показано, доступен ли этот метод в различных режимах рабочей группы.The following table shows whether this method is available in various Workgroup modes.

Режим рабочей группыWorkgroup mode ДоступноAvailable
Локальный компьютерLocal computer НетNo
Локальный компьютер и прямое имя форматаLocal computer and direct format name НетNo
Удаленный компьютерRemote computer НетNo
Удаленный компьютер и прямое имя форматаRemote computer and direct format name НетNo

Дополнительно

GetMessageQueueEnumerator(MessageQueueCriteria)

Обеспечивает семантику курсора последовательного доступа для перечисления во всех общих очередях сети, удовлетворяющих указанным критериям.Provides forward-only cursor semantics to enumerate through all public queues on the network that meet the specified criteria.

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

Параметры

criteria
MessageQueueCriteria

Объект MessageQueueCriteria, содержащий критерии фильтрации доступных очередей сообщений.A MessageQueueCriteria that contains the criteria used to filter the available message queues.

Возвраты

Объект MessageQueueEnumerator, обеспечивающий динамическое перечисление общих очередей сообщений сети, удовлетворяющих ограничениям, заданным параметром criteria.A MessageQueueEnumerator that provides a dynamic listing of the public message queues on the network that satisfy the restrictions specified by the criteria parameter.

Примеры

В следующем примере кода выполняется перебор очередей сообщений и отображается путь к каждой очереди, которая была создана за последний день и существует на компьютере "MyComputer".The following code example 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".

#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

Комментарии

Эта перегрузка GetMessageQueueEnumerator возвращает список всех публичных очередей в сети, удовлетворяющих критериям, определенным в критерии приложения.This overload of GetMessageQueueEnumerator returns a listing of all the public queues on the network that satisfy criteria defined in the application criteria. Можно указать критерии для включения, например, время создания или изменения очереди, имя компьютера, метка, категория или любое сочетание этих параметров.You can specify the criteria to include, for example, queue creation or modification time, computer name, label, category, or any combination of these.

Так как курсор связан с динамическим списком, перечисление отражает любые изменения, внесенные в очередь, которая находится за текущей позицией курсора.Because the cursor is associated with a dynamic listing, the enumeration reflects any modification you make to a queue that occurs beyond the cursor's current position. Изменения в очередях, расположенных до текущей позиции курсора, не отражаются.Changes to queues located before the cursor's current position are not reflected. Например, перечислитель может автоматически получить доступ к очереди, добавленной за пределами курсора, но не одну до этой позиции.For example, the enumerator can automatically access a queue appended beyond the cursor position but not one inserted before that position. Однако можно сбросить перечисление, таким образом переместив курсор обратно в начало списка, вызвав метод Reset MessageQueueEnumeratorдля.However, you can reset the enumeration, thereby moving the cursor back to the beginning of the list, by calling Reset for the MessageQueueEnumerator.

В сети не определено упорядочение очередей.There is no defined ordering of queues in a network. Перечислитель не упорядочивает их, например, по компьютеру, метке, общедоступному или частному состоянию или любым другим критериям, доступным для использования.An enumerator does not order them, for example, by computer, label, public or private status, or any other accessible criteria.

Если требуется статический моментальный снимок очередей в сети, а не динамическое подключение к ним, укажите условия для GetPublicQueues или вызовите. GetPrivateQueuesByMachine(String)If you want a static snapshot of the queues on the network rather than a dynamic connection to them, specify criteria for GetPublicQueues or call GetPrivateQueuesByMachine(String). Каждый из этих двух методов возвращает массив MessageQueue объектов, которые представляют очереди на момент вызова метода.Each of these two methods returns an array of MessageQueue objects, which represent the queues at the time the method was called. Вызов GetPublicQueuesByCategory(Guid)метода GetPublicQueuesByLabel(String), Label GetPublicQueues или GetPublicQueuesByMachine(String) предоставляет те же MachineName результаты,чтоипривызовескритериямифильтрации,исоответственно.CategoryCalling GetPublicQueuesByCategory(Guid), GetPublicQueuesByLabel(String), or GetPublicQueuesByMachine(String) provides the same results as calling GetPublicQueues with the filtering criteria of Category, Label, and MachineName, respectively.

В следующей таблице показано, доступен ли этот метод в различных режимах рабочей группы.The following table shows whether this method is available in various Workgroup modes.

Режим рабочей группыWorkgroup mode ДоступноAvailable
Локальный компьютерLocal computer НетNo
Локальный компьютер и прямое имя форматаLocal computer and direct format name НетNo
Удаленный компьютерRemote computer НетNo
Удаленный компьютер и прямое имя форматаRemote computer and direct format name НетNo

Дополнительно

Применяется к