MessageQueueEnumerator Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет курсор последовательного доступа для перечисления сообщений в очереди сообщений.
public ref class MessageQueueEnumerator : MarshalByRefObject, IDisposable, System::Collections::IEnumerator
public class MessageQueueEnumerator : MarshalByRefObject, IDisposable, System.Collections.IEnumerator
type MessageQueueEnumerator = class
inherit MarshalByRefObject
interface IEnumerator
interface IDisposable
Public Class MessageQueueEnumerator
Inherits MarshalByRefObject
Implements IDisposable, IEnumerator
- Наследование
- Реализации
Примеры
В следующем примере кода выполняется итерацию по всем очередям сообщений в сети и проверяется путь для каждой очереди. Наконец, отображается количество общедоступных очередей в сети.
#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
Комментарии
Используется 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 перечисления. |