This documentation is archived and is not being maintained.

MessageEnumerator.MoveNext Method (TimeSpan)

Advances the enumerator to the next message in the queue. If the enumerator is positioned at the end of the queue, MoveNext waits until a message is available or the given timeout expires.

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

public bool MoveNext(
	TimeSpan timeout


Type: System.TimeSpan
The TimeSpan to wait for a message to be available if the enumerator is positioned at the end of the queue.

Return Value

Type: System.Boolean
true if the enumerator successfully advanced to the next message; false if the enumerator has reached the end of the queue and a message does not become available within the time specified by the timeout parameter.


The value specified for the timeout parameter is invalid. It might represent a negative number.


An exception specific to Message Queuing was thrown.


The timeout has expired.

This overload waits if there is no message in the queue or if the cursor has reached the end of the queue. If a message is not currently available because the queue is empty or because you have moved beyond the last element in the collection, MoveNext waits the specified timeout.

If the cursor is already at the end of the queue, MoveNext only returns true if the new message arrives within the specified time interval, has lower priority than all messages currently in the queue and is placed at the end of the queue. An overload with no parameter returns immediately if no further messages are in the queue.

Upon creation, an enumerator is conceptually positioned before the first message of the enumeration, and the first call to MoveNext brings the first message of the enumeration into view.

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.