IInputChannel.Receive Método

Definición

Devuelve un mensaje recibido por el canal de entrada si está disponible con un intervalo de tiempo definido de forma explícita o implícita.

Sobrecargas

Receive()

Devuelve el mensaje recibido si está disponible. Si no hay un mensaje disponible, se bloquea durante un intervalo de tiempo predeterminado.

Receive(TimeSpan)

Devuelve el mensaje recibido si está disponible. Si no hay un mensaje disponible, se bloquea durante un intervalo de tiempo especificado.

Comentarios

Utilice el método Receive sincrónico cuando sea aceptable bloquear el subproceso actual hasta que reciba el mensaje de solicitud o supere el intervalo de tiempo especificado por timeout. Si es necesario que la aplicación siga realizando sus procesos sin esperar a recibir la solicitud, hay que utilizar el método asincrónico BeginReceive.

La operación Receive sincrónica está disponible con o sin un tiempo de espera explícito.

Si no hay un mensaje disponible, se bloquea hasta que uno esté disponible o hasta que se supere el tiempo de espera.

Receive()

Devuelve el mensaje recibido si está disponible. Si no hay un mensaje disponible, se bloquea durante un intervalo de tiempo predeterminado.

public:
 System::ServiceModel::Channels::Message ^ Receive();
public System.ServiceModel.Channels.Message Receive ();
abstract member Receive : unit -> System.ServiceModel.Channels.Message
Public Function Receive () As Message

Devoluciones

Message

Message recibido.

Ejemplos

El código siguiente muestra cómo implementar este método:

public Message Receive()
{
    return Receive(DefaultReceiveTimeout);
}

Comentarios

Utilice el método Receive sincrónico cuando sea aceptable bloquear el subproceso actual hasta que reciba el mensaje de solicitud o supere el intervalo de tiempo especificado por timeout. Si desea que la aplicación siga realizando sus procesos sin esperar a recibir la solicitud, hay que utilizar el método asincrónico BeginReceive.

La operación Receive sincrónica está disponible con o sin un tiempo de espera explícito.

Si no hay un mensaje disponible, se bloquea hasta que uno esté disponible o hasta que se supere el tiempo de espera.

Se puede llamar Receive varias veces o simultáneamente. Sólo se puede completar una llamada Receive por cada mensaje recibido.

Se aplica a

Receive(TimeSpan)

Devuelve el mensaje recibido si está disponible. Si no hay un mensaje disponible, se bloquea durante un intervalo de tiempo especificado.

public:
 System::ServiceModel::Channels::Message ^ Receive(TimeSpan timeout);
public System.ServiceModel.Channels.Message Receive (TimeSpan timeout);
abstract member Receive : TimeSpan -> System.ServiceModel.Channels.Message
Public Function Receive (timeout As TimeSpan) As Message

Parámetros

timeout
TimeSpan

TimeSpan que especifica cuánto tiempo tiene una operación de recepción antes de expirar e iniciar TimeoutException.

Devoluciones

Message

Message recibido.

Excepciones

Se supera el timeout especificado antes de que se complete la operación.

El tiempo de espera especificado es menor que cero.

Ejemplos

El código siguiente muestra cómo implementar este método:

public Message Receive(TimeSpan timeout)
{
    Message message;
    while (true)
    {
        message = this.InnerChannel.Receive(timeout);
        if (ProcessReceivedMessage(ref message))
        {
            break;
        }
    }

    return message;
}

Comentarios

Utilice el método Receive sincrónico cuando sea aceptable bloquear el subproceso actual hasta que reciba el mensaje de solicitud o supere el intervalo de tiempo especificado por timeout. Si desea que la aplicación siga realizando sus procesos sin esperar a recibir la solicitud, hay que utilizar el método asincrónico BeginReceive.

La operación Receive sincrónica está disponible con o sin un tiempo de espera explícito.

Si no hay un mensaje disponible, se bloquea hasta que uno esté disponible o hasta que se supere el tiempo de espera.

Se puede llamar Receive varias veces o simultáneamente. Sólo se puede completar una llamada Receive por cada mensaje recibido.

Se aplica a