Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

MessageQueueEnumerator-Klasse

Aktualisiert: November 2007

Stellt einen Vorwärtscursor zum Durchlaufen der Meldungen in einer Meldungswarteschlange bereit.

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

public class MessageQueueEnumerator : MarshalByRefObject, 
	IEnumerator, IDisposable
public class MessageQueueEnumerator extends MarshalByRefObject implements IEnumerator, 
	IDisposable
public class MessageQueueEnumerator extends MarshalByRefObject implements IEnumerator, IDisposable

Der MessageQueueEnumerator ermöglicht die dynamische Interaktion mit Warteschlangen im Netzwerk. Die von der MessageQueue-Klasse bereitgestellten Methoden geben entweder einen MessageQueueEnumerator zurück, der eine dynamische Liste von Warteschlangen enthält, oder ein Array mit einer Kopie der Warteschlangenauflistung zum Zeitpunkt des Methodenaufrufs (Snapshot).

Für Warteschlangen in einem Netzwerk ist keine Reihenfolge festgelegt. Sie sind nicht nach Kriterien wie Computer, Bezeichnung, Status (öffentlich/privat) oder anderen für Benutzer zugänglichen Kriterien geordnet. Ein MessageQueueEnumerator ist ein Cursor, der beim Initialisieren auf den Anfang einer dynamischen Liste gesetzt wird. Durch einen Aufruf von MoveNext setzen Sie den Cursor auf die erste Warteschlange in der Enumeration. Nach der Initialisierung des Enumerators können Sie mit MoveNext die einzelnen Warteschlangen durchlaufen.

Es ist nicht möglich, einen MessageQueueEnumerator auf eine Meldung vor der aktuellen Position zu setzen. Der Cursor ermöglicht ausschließlich das Setzen auf die nachfolgenden Warteschlangen in der Enumeration. Sie können jedoch Reset aufrufen, um den Cursor zurück auf den Anfang der Liste zu setzen. Da ein Enumerator dynamisch ist, kann über ihn auf eine Warteschlange zugegriffen werden, die hinter der aktuellen Position des Cursors angefügt wurde. Auf eine Warteschlange, die vor der aktuellen Cursorposition eingefügt wurde, kann nicht ohne einen vorherigen Aufruf von Reset zugegriffen werden.

Im folgenden Codebeispiel werden alle Meldungswarteschlangen im Netzwerk durchlaufen und die Pfade für alle Warteschlangen überprüft. Zum Abschluss wird die Anzahl der öffentlichen Warteschlangen im Netzwerk angezeigt.

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


package MyProject;

import System.*;
import System.Messaging.*;

/// <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(String[] args)
    {
        // Create a new instance of the class.
        MyNewQueue myNewQueue = new MyNewQueue();
        // Output the count of Lowest priority messages.
        myNewQueue.ListPublicQueues();
        return;
    } //main

    //**************************************************
    // 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.
        long 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.get_Current().get_Path());
            numberQueues++;
        }
        // Display final count.
        Console.WriteLine("Number of public queues: "
            + ((Int32)numberQueues).ToString());
        return;
    } //ListPublicQueues
} //MyNewQueue


System.Object
  System.MarshalByRefObject
    System.Messaging.MessageQueueEnumerator

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0, 1.1, 1.0
Anzeigen: