Compartilhar via


IInputChannel.Receive Método

Definição

Retornará uma mensagem recebida pelo canal de entrada, se houver um disponível com um intervalo de tempo definido implícita ou explicitamente.

Sobrecargas

Receive()

Retornará a mensagem recebida, se houver uma disponível. Se uma mensagem não estiver disponível, será bloqueado por um intervalo de tempo padrão.

Receive(TimeSpan)

Retornará a mensagem recebida, se houver uma disponível. Se uma mensagem não estiver disponível, será bloqueado por um intervalo de tempo especificado.

Comentários

Use o método síncrono Receive quando for aceitável que o thread atual seja bloqueado até que ele receba a mensagem de solicitação ou exceda o intervalo de tempo especificado por timeout. Use o método assíncrono BeginReceive quando precisar que o processamento do aplicativo continue sem aguardar o recebimento da solicitação.

A operação síncrona Receive está disponível com ou sem um tempo limite explícito.

Se uma mensagem não estiver disponível, ela será bloqueada até que uma esteja disponível ou até que o tempo limite seja excedido.

Receive()

Origem:
IInputChannel.cs
Origem:
IInputChannel.cs

Retornará a mensagem recebida, se houver uma disponível. Se uma mensagem não estiver disponível, será bloqueado por um intervalo de tempo padrão.

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

Retornos

O Message recebido.

Exemplos

O código a seguir ilustra como implementar esse método:

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

Comentários

Use o método síncrono Receive quando for aceitável que o thread atual seja bloqueado até que ele receba a mensagem de solicitação ou exceda o intervalo de tempo especificado por timeout. Use o método assíncrono BeginReceive quando desejar que o processamento do aplicativo continue sem aguardar o recebimento da solicitação.

A operação síncrona Receive está disponível com ou sem um tempo limite explícito.

Se uma mensagem não estiver disponível, ela será bloqueada até que uma esteja disponível ou até que o tempo limite seja excedido.

Receive pode ser chamado várias vezes ou simultaneamente. Somente uma Receive chamada pode ser concluída para cada mensagem recebida.

Aplica-se a

Receive(TimeSpan)

Origem:
IInputChannel.cs
Origem:
IInputChannel.cs

Retornará a mensagem recebida, se houver uma disponível. Se uma mensagem não estiver disponível, será bloqueado por um intervalo de tempo 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

O TimeSpan que especifica quanto tempo a operação de recebimento tem para ser concluída antes de atingir o tempo limite e retornar TimeoutException.

Retornos

O Message recebido.

Exceções

O timeout especificado é ultrapassado antes que a operação seja concluída.

O tempo limite especificado é menor que zero.

Exemplos

O código a seguir ilustra como implementar esse método:

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

    return message;
}

Comentários

Use o método síncrono Receive quando for aceitável que o thread atual seja bloqueado até que ele receba a mensagem de solicitação ou exceda o intervalo de tempo especificado por timeout. Use o método assíncrono BeginReceive quando desejar que o processamento do aplicativo continue sem aguardar o recebimento da solicitação.

A operação síncrona Receive está disponível com ou sem um tempo limite explícito.

Se uma mensagem não estiver disponível, ela será bloqueada até que uma esteja disponível ou até que o tempo limite seja excedido.

Receive pode ser chamado várias vezes ou simultaneamente. Somente uma Receive chamada pode ser concluída para cada mensagem recebida.

Aplica-se a