MessageQueueEnumerator Class


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Provides a forward-only cursor to enumerate through messages in a message queue.

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


public class MessageQueueEnumerator : MarshalByRefObject, IEnumerator, 


Gets the current MessageQueue of the enumeration.


Gets the native Message Queuing handle used to locate queues in a network.


Frees the resources associated with the enumerator.


Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.(Inherited from MarshalByRefObject.)


Releases all resources used by the MessageQueueEnumerator.


Releases the unmanaged resources used by the MessageQueueEnumerator and optionally releases the managed resources.


Determines whether the specified object is equal to the current object.(Inherited from Object.)


Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)


Serves as the default hash function. (Inherited from Object.)


Retrieves the current lifetime service object that controls the lifetime policy for this instance.(Inherited from MarshalByRefObject.)


Gets the Type of the current instance.(Inherited from Object.)


Obtains a lifetime service object to control the lifetime policy for this instance.(Inherited from MarshalByRefObject.)


Creates a shallow copy of the current Object.(Inherited from Object.)


Creates a shallow copy of the current MarshalByRefObject object.(Inherited from MarshalByRefObject.)


Advances the enumerator to the next queue of the enumeration, if one is currently available.


Resets the cursor, so it points to the beginning of the enumeration.


Returns a string that represents the current object.(Inherited from Object.)


Gets the current MessageQueue of the enumeration.

Use MessageQueueEnumerator for dynamic interaction with queues on the network. Methods available through the MessageQueue class can return either a MessageQueueEnumerator containing a dynamic list of queues, or an array that contains a snapshot of the queue collection at the time the specified method was called.

There is no defined ordering of queues in a network. They are not ordered, for example, by computer, label, public or private status, or other user-accessible criteria. A MessageQueueEnumerator is a cursor, initialized to the head of a dynamic list. You can move the cursor to the first queue of the enumeration by calling MoveNext. After the enumerator has been initialized, you can use MoveNext to step forward through the remaining queues.

It is not possible to step backward with a MessageQueueEnumerator. A cursor only allows forward movement through the queue enumeration. However, you can call Reset to reset the enumeration and put the cursor at the beginning of the list again. Because the enumerator is dynamic, a queue that is appended beyond the cursor's current position can be accessed by the enumerator. A queue that is inserted before the cursor's current position cannot be accessed without first calling Reset.

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


		// 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 = 

			// Move to the next queue and read its path.
				// Increase the count if priority is Lowest.

			// Display final count.
			Console.WriteLine("Number of public queues: " + 


.NET Framework
Available since 1.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top