Прочитать на английском

Поделиться через


MessageQueueEnumerator Класс

Определение

Предоставляет курсор последовательного доступа для перечисления сообщений в очереди сообщений.

public class MessageQueueEnumerator : MarshalByRefObject, IDisposable, System.Collections.IEnumerator
Наследование
MessageQueueEnumerator
Реализации

Примеры

В следующем примере кода выполняется итерацию по всем очередям сообщений в сети и проверяется путь для каждой очереди. Наконец, отображается количество общедоступных очередей в сети.

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;
        }
    }
}

Комментарии

Используется MessageQueueEnumerator для динамического взаимодействия с очередями в сети. Методы, доступные MessageQueue в классе , могут возвращать либо MessageQueueEnumerator содержащий динамический список очередей, либо массив, содержащий snapshot коллекции очередей на момент вызова указанного метода.

В сети нет определенного порядка очередей. Они не упорядочены, например, по компьютеру, метки, общедоступному или частному состоянию или другим критериям, доступным для пользователя. — MessageQueueEnumerator это курсор, инициализируемый заголовком динамического списка. Вы можете переместить курсор в первую очередь перечисления, вызвав .MoveNext После инициализации перечислителя можно использовать для MoveNext шага вперед по оставшимся очередям.

Невозможно выполнить шаг назад с помощью MessageQueueEnumerator. Курсор разрешает только перемещение вперед по перечислению очереди. Однако можно вызвать метод Reset для сброса перечисления и снова поместить курсор в начало списка. Так как перечислитель является динамическим, перечислитель может получить доступ к очереди, добавляемой за пределами текущей позиции курсора. Очередь, вставленная до текущей позиции курсора, не может быть доступна без предварительного вызова reset.

Свойства

Current

Получает текущий объект MessageQueue перечисления.

LocatorHandle

Получает собственный дескриптор Message Queuing, используемый для определения очередей в сети.

Методы

Close()

Освобождает ресурсы, связанные с перечислителем.

CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

(Унаследовано от MarshalByRefObject)
Dispose()

Освобождает все ресурсы, занятые модулем MessageQueueEnumerator.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом MessageQueueEnumerator, а при необходимости освобождает также управляемые ресурсы.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Finalize()

Освобождает ресурсы, используемые очередью.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetLifetimeService()
Устаревшие..

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.

(Унаследовано от MarshalByRefObject)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
InitializeLifetimeService()
Устаревшие..

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject.

(Унаследовано от MarshalByRefObject)
MoveNext()

Перемещает перечислитель на следующую очередь перечисления, если таковая имеется.

Reset()

Сброс курсора, теперь он указывает на начало перечисления.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

IEnumerator.Current

Получает текущий объект MessageQueue перечисления.

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

Продукт Версии
.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

См. также раздел