MessageQueue.Peek MessageQueue.Peek MessageQueue.Peek MessageQueue.Peek Method

Definición

Devuelve una copia del primer mensaje de la cola, sin quitarlo de esta.Returns a copy of the first message in the queue without removing the message from the queue.

Sobrecargas

Peek() Peek() Peek() Peek()

Devuelve sin quitar (búsqueda peek) el primer mensaje de la cola a la que hace referencia esta MessageQueue.Returns without removing (peeks) the first message in the queue referenced by this MessageQueue. El método Peek() es sincrónico, por lo que se bloquea el subproceso actual hasta que haya un mensaje disponible.The Peek() method is synchronous, so it blocks the current thread until a message becomes available.

Peek(TimeSpan) Peek(TimeSpan) Peek(TimeSpan) Peek(TimeSpan)

Devuelve sin quitar (búsqueda peek) el primer mensaje de la cola a la que hace referencia esta MessageQueue.Returns without removing (peeks) the first message in the queue referenced by this MessageQueue. El método Peek() es sincrónico, por lo que se bloquea el subproceso actual hasta que haya un mensaje disponible o hasta que finalice el tiempo de espera especificado.The Peek() method is synchronous, so it blocks the current thread until a message becomes available or the specified time-out occurs.

Peek(TimeSpan, Cursor, PeekAction) Peek(TimeSpan, Cursor, PeekAction) Peek(TimeSpan, Cursor, PeekAction)

Vuelve sin quitar (búsquedas peek) el mensaje actual o próximo de la cola, utilizando el cursor especificado.Returns without removing (peeks) the current or next message in the queue, using the specified cursor. El método Peek() es sincrónico, por lo que se bloquea el subproceso actual hasta que haya un mensaje disponible o hasta que finalice el tiempo de espera especificado.The Peek() method is synchronous, so it blocks the current thread until a message becomes available or the specified time-out occurs.

Peek() Peek() Peek() Peek()

Devuelve sin quitar (búsqueda peek) el primer mensaje de la cola a la que hace referencia esta MessageQueue.Returns without removing (peeks) the first message in the queue referenced by this MessageQueue. El método Peek() es sincrónico, por lo que se bloquea el subproceso actual hasta que haya un mensaje disponible.The Peek() method is synchronous, so it blocks the current thread until a message becomes available.

public:
 System::Messaging::Message ^ Peek();
public System.Messaging.Message Peek ();
member this.Peek : unit -> System.Messaging.Message
Public Function Peek () As Message

Devoluciones

Message que representa al primer mensaje de la cola.The Message that represents the first message in the queue.

Excepciones

Error al obtener acceso a un método de Message Queuing.An error occurred when accessing a Message Queuing method.

Ejemplos

Los ejemplos siguientes usan la Peek método en una cola.The following examples use the Peek method on a queue.

En el primer ejemplo, la aplicación espera hasta que haya un mensaje disponible en la cola.In the first example, the application waits until a message becomes available in the queue. Tenga en cuenta que el primer ejemplo no tiene acceso el mensaje que llega; simplemente se detiene el procesamiento hasta que llegue un mensaje.Note that the first example does not access the message that arrives; it merely pauses processing until a message arrives. Si un mensaje ya existe en la cola, se devolverá inmediatamente.If a message already exists in the queue, it will return immediately.

En el segundo ejemplo, un mensaje que contiene una aplicación define Order clase es enviado a la cola y, a continuación, inspeccionar en la cola.In the second example, a message that contains an application-defined Order class is sent to the queue, and then peeked from the queue.

#using <system.dll>
#using <system.messaging.dll>

using namespace System;
using namespace System::Messaging;

// This class represents an object the following example 
// sends to a queue and receives from a queue.
ref class Order
{
public:
   int orderId;
   DateTime orderTime;
};


/// <summary>
/// Provides a container class for the example.
/// </summary>
ref class MyNewQueue
{
public:

   //*************************************************
   // Posts a notification when a message arrives in 
   // the queue S"monitoredQueue". Does not retrieve any 
   // message information when peeking the message.
   //*************************************************
   void NotifyArrived()
   {
      // Connect to a queue.
      MessageQueue^ myQueue = gcnew MessageQueue( ".\\monitoredQueue" );

      // Specify to retrieve no message information.
      myQueue->MessageReadPropertyFilter->ClearAll();

      // Wait for a message to arrive. 
      Message^ emptyMessage = myQueue->Peek();

      // Post a notification when a message arrives.
      Console::WriteLine( "A message has arrived in the queue." );
      return;
   }


   //*************************************************
   // Sends an Order to a queue.
   //*************************************************
   void SendMessage()
   {
      // Create a new order and set values.
      Order^ sentOrder = gcnew Order;
      sentOrder->orderId = 3;
      sentOrder->orderTime = DateTime::Now;

      // Connect to a queue on the local computer.
      MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" );

      // Send the Order to the queue.
      myQueue->Send( sentOrder );
      return;
   }

   //*************************************************
   // Peeks a message containing an Order.
   //*************************************************
   void PeekFirstMessage()
   {
      // Connect to a queue.
      MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" );

      // Set the formatter to indicate the body contains an Order.
      array<Type^>^p = gcnew array<Type^>(1);
      p[ 0 ] = Order::typeid;
      myQueue->Formatter = gcnew XmlMessageFormatter( p );
      try
      {
         // Peek and format the message. 
         Message^ myMessage = myQueue->Peek();
         Order^ myOrder = static_cast<Order^>(myMessage->Body);

         // Display message information.
         Console::WriteLine( "Order ID: {0}", myOrder->orderId );
         Console::WriteLine( "Sent: {0}", myOrder->orderTime );
      }
      catch ( MessageQueueException^ ) 
      {
         // Handle Message Queuing exceptions.
      }
      // Handle invalid serialization format.
      catch ( InvalidOperationException^ e ) 
      {
         Console::WriteLine( e->Message );
      }

      // Catch other exceptions as necessary.
      return;
   }
};

//*************************************************
// Provides an entry point into the application.
//         
// This example posts a notification that a message
// has arrived in a queue. It sends a message 
// containing an other to a separate queue, and then
// peeks the first message in the queue.
//*************************************************
int main()
{
   // Create a new instance of the class.
   MyNewQueue^ myNewQueue = gcnew MyNewQueue;

   // Wait for a message to arrive in the queue.
   myNewQueue->NotifyArrived();

   // Send a message to a queue.
   myNewQueue->SendMessage();

   // Peek the first message in the queue.
   myNewQueue->PeekFirstMessage();
   return 0;
}
using System;
using System.Messaging;

namespace MyProject
{

	// This class represents an object the following example 
	// sends to a queue and receives from a queue.
	public class Order
	{
		public int orderId;
		public DateTime orderTime;
	};	

	/// <summary>
	/// Provides a container class for the example.
	/// </summary>
	public class MyNewQueue
	{

		//**************************************************
		// Provides an entry point into the application.
		//		 
		// This example posts a notification that a message
		// has arrived in a queue. It sends a message 
		// containing an other to a separate queue, and then
		// peeks the first message in the queue.
		//**************************************************

		public static void Main()
		{
			// Create a new instance of the class.
			MyNewQueue myNewQueue = new MyNewQueue();

			// Wait for a message to arrive in the queue.
			myNewQueue.NotifyArrived();

			// Send a message to a queue.
			myNewQueue.SendMessage();	

			// Peek the first message in the queue.
			myNewQueue.PeekFirstMessage();
						
			return;
		}


		//**************************************************
		// Posts a notification when a message arrives in 
		// the queue "monitoredQueue". Does not retrieve any 
		// message information when peeking the message.
		//**************************************************
		
		public void NotifyArrived()
		{

			// Connect to a queue.
			MessageQueue myQueue = new 
				MessageQueue(".\\monitoredQueue");
	
			// Specify to retrieve no message information.
			myQueue.MessageReadPropertyFilter.ClearAll();

			// Wait for a message to arrive. 
			Message emptyMessage = myQueue.Peek();

			// Post a notification when a message arrives.
			Console.WriteLine("A message has arrived in the queue.");

			return;

		}


		//**************************************************
		// Sends an Order to a queue.
		//**************************************************
		
		public void SendMessage()
		{
			
			// Create a new order and set values.
			Order sentOrder = new Order();
			sentOrder.orderId = 3;
			sentOrder.orderTime = DateTime.Now;

			// Connect to a queue on the local computer.
			MessageQueue myQueue = new MessageQueue(".\\myQueue");

			// Send the Order to the queue.
			myQueue.Send(sentOrder);

			return;
		}


		//**************************************************
		// Peeks a message containing an Order.
		//**************************************************
		
		public void PeekFirstMessage()
		{
			// Connect to a queue.
			MessageQueue myQueue = new MessageQueue(".\\myQueue");
	
			// Set the formatter to indicate the body contains an Order.
			myQueue.Formatter = new XmlMessageFormatter(new Type[]
				{typeof(MyProject.Order)});
			
			try
			{
				// Peek and format the message. 
				Message myMessage =	myQueue.Peek(); 
				Order myOrder = (Order)myMessage.Body;

				// Display message information.
				Console.WriteLine("Order ID: " + 
					myOrder.orderId.ToString());
				Console.WriteLine("Sent: " + 
					myOrder.orderTime.ToString());
			}
			
			catch (MessageQueueException)
			{
				// Handle Message Queuing exceptions.
			}

			// Handle invalid serialization format.
			catch (InvalidOperationException e)
			{
				Console.WriteLine(e.Message);
			}
			
			// Catch other exceptions as necessary.

			return;

		}
	}
}
Imports System
Imports System.Messaging



    ' This class represents an object the following example 
    ' sends to a queue and peeks from a queue.
    Public Class Order
        Public orderId As Integer
        Public orderTime As DateTime
    End Class 'Order


   
    Public Class MyNewQueue


        
        ' Provides an entry point into the application.
        '		 
        ' This example posts a notification that a message
        ' has arrived in a queue. It sends a message 
        ' containing an other to a separate queue, and then
        ' peeks the first message in the queue.
        

        Public Shared Sub Main()

            ' Create a new instance of the class.
            Dim myNewQueue As New MyNewQueue()

            ' Wait for a message to arrive in the queue.
            myNewQueue.NotifyArrived()

            ' Send a message to a queue.
            myNewQueue.SendMessage()

            ' Peek the first message in the queue.
            myNewQueue.PeekFirstMessage()

            Return

        End Sub 'Main


        
        ' Posts a notification when a message arrives in 
        ' the queue "monitoredQueue". Does not retrieve any 
        ' message information when peeking the message.
        
        Public Sub NotifyArrived()

            ' Connect to a queue.
            Dim myQueue As New MessageQueue(".\monitoredQueue")

            ' Specify to retrieve no message information.
            myQueue.MessageReadPropertyFilter.ClearAll()

            ' Wait for a message to arrive. 
            Dim emptyMessage As Message = myQueue.Peek()

            ' Post a notification when a message arrives.
            Console.WriteLine("A message has arrived in the queue.")

            Return

        End Sub 'NotifyArrived


        
        ' Sends an Order to a queue.
        

        Public Sub SendMessage()

            ' Create a new order and set values.
            Dim sentOrder As New Order()
            sentOrder.orderId = 3
            sentOrder.orderTime = DateTime.Now

            ' Connect to a queue on the local computer.
            Dim myQueue As New MessageQueue(".\myQueue")

            ' Send the Order to the queue.
            myQueue.Send(sentOrder)

            Return

        End Sub 'SendMessage


        
        ' Peeks a message containing an Order.
        

        Public Sub PeekFirstMessage()

            ' Connect to a queue.
            Dim myQueue As New MessageQueue(".\myQueue")

            ' Set the formatter to indicate body contains an Order.
            myQueue.Formatter = New XmlMessageFormatter(New Type() _
                {GetType(Order)})

            Try

                ' Peek and format the message. 
                Dim myMessage As Message = myQueue.Peek()
                Dim myOrder As Order = CType(myMessage.Body, Order)

                ' Display message information.
                Console.WriteLine(("Order ID: " + _
                    myOrder.orderId.ToString()))
                Console.WriteLine(("Sent: " + _
                    myOrder.orderTime.ToString()))

            Catch m as MessageQueueException
                ' Handle Message Queuing exceptions.


            Catch e As InvalidOperationException
                ' Handle invalid serialization format.
                Console.WriteLine(e.Message)

                ' Catch other exceptions as necessary.

            End Try

            Return

        End Sub 'PeekFirstMessage 

End Class 'MyNewQueue

Comentarios

Utilice esta sobrecarga para buscar una cola o esperar hasta que haya un mensaje en la cola.Use this overload to peek a queue, or to wait until a message exists in the queue.

El Peek método lee, pero no quita el primer mensaje de la cola.The Peek method reads, but does not remove, the first message from the queue. Por lo tanto, las llamadas repetidas a Peek devuelven el mismo mensaje, a menos que llegue un mensaje de mayor prioridad en la cola.Therefore, repeated calls to Peek return the same message, unless a higher priority message arrives in the queue. El Receive método, por otro lado, lee y quita el primer mensaje de la cola.The Receive method, on the other hand, both reads and removes the first message from the queue. Las llamadas repetidas a Receive, por lo tanto, devolver mensajes distintos.Repeated calls to Receive, therefore, return different messages.

Message Queue Server ordena los mensajes en la cola según la hora de llegada y prioridad.Message Queuing orders messages in the queue according to priority and arrival time. Se coloca un mensaje más reciente antes de uno más antiguo sólo si es una prioridad más alta.A newer message is placed before an older one only if it is of a higher priority.

Utilice Peek cuando se acepte bloquear el subproceso actual mientras se espera a que llegue un mensaje a la cola.Use Peek when it is acceptable for the current thread to be blocked while it waits for a message to arrive in the queue. Dado que esta sobrecarga no especifica un tiempo de espera, la aplicación podría esperar indefinidamente.Because this overload does not specify a time-out, the application might wait indefinitely. Si es necesario que la aplicación siga realizando sus procesos sin esperar, hay que utilizar el método asincrónico BeginPeek.If you need the application processing to continue without waiting, use the asynchronous BeginPeek method. Como alternativa, puede especificar un tiempo de espera para un mensaje llegue a la cola mediante la sobrecarga de Peek que especifica un tiempo de espera.Alternatively, you can specify a time-out for a message to arrive in the queue by using the overload of Peek that specifies a time-out.

En la tabla siguiente se muestra si este método está disponible en los distintos modos de grupo de trabajo.The following table shows whether this method is available in various Workgroup modes.

Modo de grupo de trabajoWorkgroup mode DisponibleAvailable
Equipo localLocal computer Yes
Equipo local y el nombre de formato directoLocal computer and direct format name Yes
Equipo remotoRemote computer NoNo
Equipo remoto y el nombre de formato directoRemote computer and direct format name Yes
Consulte también:

Peek(TimeSpan) Peek(TimeSpan) Peek(TimeSpan) Peek(TimeSpan)

Devuelve sin quitar (búsqueda peek) el primer mensaje de la cola a la que hace referencia esta MessageQueue.Returns without removing (peeks) the first message in the queue referenced by this MessageQueue. El método Peek() es sincrónico, por lo que se bloquea el subproceso actual hasta que haya un mensaje disponible o hasta que finalice el tiempo de espera especificado.The Peek() method is synchronous, so it blocks the current thread until a message becomes available or the specified time-out occurs.

public:
 System::Messaging::Message ^ Peek(TimeSpan timeout);
public System.Messaging.Message Peek (TimeSpan timeout);
member this.Peek : TimeSpan -> System.Messaging.Message
Public Function Peek (timeout As TimeSpan) As Message

Parámetros

timeout
TimeSpan TimeSpan TimeSpan TimeSpan

TimeSpan que indica el tiempo máximo que hay que esperar hasta que la cola contenga un mensaje.A TimeSpan that indicates the maximum time to wait for the queue to contain a message.

Devoluciones

Message que representa al primer mensaje de la cola.The Message that represents the first message in the queue.

Excepciones

El valor que especifica el parámetro timeout no es válido, quizás porque timeout es menor que Zero o mayor que InfiniteTimeout.The value specified for the timeout parameter is not valid, possibly timeout is less than Zero or greater than InfiniteTimeout.

Error al obtener acceso a un método de Message Queuing.An error occurred when accessing a Message Queuing method.

Ejemplos

El siguiente ejemplo de código utiliza el Peek método con un tiempo de espera de cero para comprobar si la cola está vacía.The following code example uses the Peek method with a time-out of zero to check whether the queue is empty.

#using <system.dll>
#using <system.messaging.dll>

using namespace System;
using namespace System::Messaging;
ref class MyNewQueue
{
public:

   //*************************************************
   // Determines whether a queue is empty. The Peek()
   // method throws an exception if there is no message
   // in the queue. This method handles that exception 
   // by returning true to the calling method.
   //*************************************************
   bool IsQueueEmpty()
   {
      bool isQueueEmpty = false;
      
      // Connect to a queue.
      MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" );
      try
      {
         
         // Set Peek to return immediately.
         myQueue->Peek( TimeSpan(0) );
         
         // If an IOTime->Item[Out] was* not thrown, there is a message 
         // in the queue.
         isQueueEmpty = false;
      }
      catch ( MessageQueueException^ e ) 
      {
         if ( e->MessageQueueErrorCode == MessageQueueErrorCode::IOTimeout )
         {
            
            // No message was in the queue.
            isQueueEmpty = true;
         }

         
         // Handle other sources of MessageQueueException.
      }

      
      // Handle other exceptions as necessary.
      // Return true if there are no messages in the queue.
      return isQueueEmpty;
   }

};


//*************************************************
// Provides an entry point into the application.
//         
// This example determines whether a queue is empty.
//*************************************************
int main()
{
   
   // Create a new instance of the class.
   MyNewQueue^ myNewQueue = gcnew MyNewQueue;
   
   // Determine whether a queue is empty.
   bool isQueueEmpty = myNewQueue->IsQueueEmpty();
   return 0;
}

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 determines whether a queue is empty.
		//**************************************************

		public static void Main()
		{
			// Create a new instance of the class.
			MyNewQueue myNewQueue = new MyNewQueue();

			// Determine whether a queue is empty.
			bool isQueueEmpty = myNewQueue.IsQueueEmpty();
						
			return;
		}


		//**************************************************
		// Determines whether a queue is empty. The Peek()
		// method throws an exception if there is no message
		// in the queue. This method handles that exception 
		// by returning true to the calling method.
		//**************************************************
		
		public bool IsQueueEmpty()
		{
			bool isQueueEmpty = false;

			// Connect to a queue.
			MessageQueue myQueue = new MessageQueue(".\\myQueue");

			try
			{
				// Set Peek to return immediately.
				myQueue.Peek(new TimeSpan(0));

				// If an IOTimeout was not thrown, there is a message 
				// in the queue.
				isQueueEmpty = false;
			}

			catch(MessageQueueException e)
			{
				if (e.MessageQueueErrorCode == 
					MessageQueueErrorCode.IOTimeout)
				{
					// No message was in the queue.
					isQueueEmpty = true;
				}

				// Handle other sources of MessageQueueException.
			}

			// Handle other exceptions as necessary.

			// Return true if there are no messages in the queue.
			return isQueueEmpty;

		}
	}
}
Imports System
Imports System.Messaging



   
    Public Class MyNewQueue


        '
        ' Provides an entry point into the application.
        '		 
        ' This example determines whether a queue is empty.
        '

        Public Shared Sub Main()

            ' Create a new instance of the class.
            Dim myNewQueue As New MyNewQueue()

            ' Determine whether a queue is empty.
            Dim IsQueueEmpty As Boolean = myNewQueue.IsQueueEmpty()
	    if IsQueueEMpty=True Then Console.WriteLine("Empty")
            

            Return

        End Sub 'Main


        '
        ' Determines whether a queue is empty. The Peek()
        ' method throws an exception if there is no message
        ' in the queue. This method handles that exception 
        ' by returning true to the calling method.
        '

        Public Function IsQueueEmpty() As Boolean

            'Dim QueueEmpty As Boolean = False

            ' Connect to a queue.
            Dim myQueue As New MessageQueue(".\myQueue")

            Try

                ' Set Peek to return immediately.
                myQueue.Peek(New TimeSpan(0))

                ' If an IOTimeout was not thrown, there is a message 
                ' in the queue.
                'queueEmpty = False

            Catch e As MessageQueueException

                If e.MessageQueueErrorCode = _
                    MessageQueueErrorCode.IOTimeout Then

                    ' No message was in the queue.
                    IsQueueEmpty = True

                End If

                ' Handle other sources of MessageQueueException as necessary.

                ' Handle other exceptions as necessary.

            End Try

            ' Return true if there are no messages in the queue.
            'Return queueEmpty
	    IsQueueEmpty = False

        End Function 'IsQueueEmpty 

End Class 'MyNewQueue

Comentarios

Utilice esta sobrecarga para buscar una cola o para esperar un periodo de tiempo hasta que haya un mensaje en la cola.Use this overload to peek a queue, or to wait a specified period of time until a message exists in the queue. El método vuelve inmediatamente si ya existe un mensaje en la cola.The method returns immediately if a message already exists in the queue.

El Peek método lee, pero no quita el primer mensaje de la cola.The Peek method reads, but does not remove, the first message from the queue. Por lo tanto, las llamadas repetidas a Peek devuelven el mismo mensaje, a menos que llegue un mensaje de mayor prioridad en la cola.Therefore, repeated calls to Peek return the same message, unless a higher priority message arrives in the queue. El Receive método, por otro lado, lee y quita el primer mensaje de la cola.The Receive method, on the other hand, both reads and removes the first message from the queue. Las llamadas repetidas a Receive, por lo tanto, devolver mensajes distintos.Repeated calls to Receive, therefore, return different messages.

Message Queue Server ordena los mensajes en la cola según la hora de llegada y prioridad.Message Queuing orders messages in the queue according to priority and arrival time. Se coloca un mensaje más reciente antes de uno más antiguo sólo si es una prioridad más alta.A newer message is placed before an older one only if it is of a higher priority.

Utilice Peek cuando se acepte bloquear el subproceso actual mientras se espera a que llegue un mensaje a la cola.Use Peek when it is acceptable for the current thread to be blocked while it waits for a message to arrive in the queue. Se bloqueará el subproceso hasta el período especificado de tiempo o indefinidamente si indicado InfiniteTimeout.The thread will be blocked up to the specified period of time, or indefinitely if you indicated InfiniteTimeout. Si es necesario que la aplicación siga realizando sus procesos sin esperar, hay que utilizar el método asincrónico BeginPeek.If you need the application processing to continue without waiting, use the asynchronous BeginPeek method.

En la tabla siguiente se muestra si este método está disponible en los distintos modos de grupo de trabajo.The following table shows whether this method is available in various Workgroup modes.

Modo de grupo de trabajoWorkgroup mode DisponibleAvailable
Equipo localLocal computer Yes
Equipo local y el nombre de formato directoLocal computer and direct format name Yes
Equipo remotoRemote computer NoNo
Equipo remoto y el nombre de formato directoRemote computer and direct format name Yes
Consulte también:

Peek(TimeSpan, Cursor, PeekAction) Peek(TimeSpan, Cursor, PeekAction) Peek(TimeSpan, Cursor, PeekAction)

Vuelve sin quitar (búsquedas peek) el mensaje actual o próximo de la cola, utilizando el cursor especificado.Returns without removing (peeks) the current or next message in the queue, using the specified cursor. El método Peek() es sincrónico, por lo que se bloquea el subproceso actual hasta que haya un mensaje disponible o hasta que finalice el tiempo de espera especificado.The Peek() method is synchronous, so it blocks the current thread until a message becomes available or the specified time-out occurs.

public:
 System::Messaging::Message ^ Peek(TimeSpan timeout, System::Messaging::Cursor ^ cursor, System::Messaging::PeekAction action);
public System.Messaging.Message Peek (TimeSpan timeout, System.Messaging.Cursor cursor, System.Messaging.PeekAction action);
member this.Peek : TimeSpan * System.Messaging.Cursor * System.Messaging.PeekAction -> System.Messaging.Message

Parámetros

timeout
TimeSpan TimeSpan TimeSpan TimeSpan

TimeSpan que indica el tiempo máximo que hay que esperar hasta que la cola contenga un mensaje.A TimeSpan that indicates the maximum time to wait for the queue to contain a message.

cursor
Cursor Cursor Cursor Cursor

Un objeto Cursor que mantiene una posición específica en la cola de mensajes.A Cursor that maintains a specific position in the message queue.

action
PeekAction PeekAction PeekAction PeekAction

Uno de los valores de PeekAction.One of the PeekAction values. Indica si se ejecuta el método peek en el mensaje actual de la cola o en el mensaje siguiente.Indicates whether to peek at the current message in the queue, or the next message.

Devoluciones

Una clase Message que representa un mensaje de la cola.A Message that represents a message in the queue.

Excepciones

Se especificó un valor distinto de PeekAction.Current o PeekAction.Next para el parámetro action.A value other than PeekAction.Current or PeekAction.Next was specified for the action parameter.

El parámetro cursor es null.The cursor parameter is null.

El valor especificado para el parámetro timeout no es válido.The value specified for the timeout parameter is not valid. Probablemente timeout es menor que Zero o mayor que InfiniteTimeout.Possibly timeout is less than Zero or greater than InfiniteTimeout.

Error al obtener acceso a un método de Message Queuing.An error occurred when accessing a Message Queuing method.

Comentarios

Utilice esta sobrecarga para buscar una cola o para esperar un periodo de tiempo hasta que haya un mensaje en la cola.Use this overload to peek a queue, or to wait a specified period of time until a message exists in the queue. El método vuelve inmediatamente si ya existe un mensaje en la cola.The method returns immediately if a message already exists in the queue.

El Peek método lee, pero no quita un mensaje de la cola.The Peek method reads, but does not remove, a message from the queue. El Receive método, por otro lado, lee y quita un mensaje de la cola.The Receive method, on the other hand, both reads and removes a message from the queue.

Utilice Peek cuando se acepte bloquear el subproceso actual mientras se espera a que llegue un mensaje a la cola.Use Peek when it is acceptable for the current thread to be blocked while it waits for a message to arrive in the queue. El subproceso está bloqueado hasta el período especificado de tiempo o indefinidamente si indicado InfiniteTimeout.The thread is blocked up to the specified period of time, or indefinitely if you indicated InfiniteTimeout. Si es necesario que la aplicación siga realizando sus procesos sin esperar, hay que utilizar el método asincrónico BeginPeek.If you need the application processing to continue without waiting, use the asynchronous BeginPeek method.

En la tabla siguiente se muestra si este método está disponible en los distintos modos de grupo de trabajo.The following table shows whether this method is available in various Workgroup modes.

Modo de grupo de trabajoWorkgroup mode DisponibleAvailable
Equipo localLocal computer Yes
Equipo local y el nombre de formato directoLocal computer and direct format name Yes
Equipo remotoRemote computer NoNo
Equipo remoto y el nombre de formato directoRemote computer and direct format name Yes
Consulte también:

Se aplica a