IInputChannel.Receive Método

Definição

Devolve uma mensagem recebida pelo canal de entrada, se estiver disponível com um intervalo de tempo que esteja explicitamente ou implicitamente definido.

Sobrecargas

Name Description
Receive()

Devolve a mensagem recebida, caso exista disponível. Se uma mensagem não estiver disponível, bloqueia-a por um intervalo de tempo predefinido.

Receive(TimeSpan)

Devolve a mensagem recebida, caso exista disponível. Se uma mensagem não estiver disponível, bloqueia-se durante um intervalo de tempo especificado.

Observações

Use o método síncrono Receive quando for aceitável que a thread atual seja bloqueada até receber a mensagem de pedido ou ultrapassar o intervalo de tempo especificado por timeout. Use o método assíncrono BeginReceive quando precisar que o processamento da candidatura continue sem esperar que o pedido seja recebido.

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

Se uma mensagem não estiver disponível, bloqueia-se até que uma esteja disponível ou até que o timeout seja ultrapassado.

Receive()

Origem:
IInputChannel.cs
Origem:
IInputChannel.cs
Origem:
IInputChannel.cs

Devolve a mensagem recebida, caso exista disponível. Se uma mensagem não estiver disponível, bloqueia-a por um intervalo de tempo predefinido.

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

Devoluções

O Message recebido.

Exemplos

O seguinte código ilustra como implementar este método:

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

Observações

Use o método síncrono Receive quando for aceitável que a thread atual seja bloqueada até receber a mensagem de pedido ou ultrapassar o intervalo de tempo especificado por timeout. Use o método assíncrono BeginReceive quando quiser que o processamento da candidatura continue sem esperar que o pedido seja recebido.

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

Se uma mensagem não estiver disponível, bloqueia-se até que uma esteja disponível ou até que o timeout seja ultrapassado.

Receive pode ser chamada várias vezes ou em simultâneo. Apenas uma Receive chamada pode ser concluída por cada mensagem recebida.

Aplica-se a

Receive(TimeSpan)

Origem:
IInputChannel.cs
Origem:
IInputChannel.cs
Origem:
IInputChannel.cs

Devolve a mensagem recebida, caso exista disponível. Se uma mensagem não estiver disponível, bloqueia-se durante 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 receção tem para ser concluída antes de expirar e lançar um TimeoutException.

Devoluções

O Message recebido.

Exceções

O especificado timeout é ultrapassado antes da operação ser concluída.

O tempo de espera especificado é inferior a zero.

Exemplos

O seguinte código ilustra como 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;
}

Observações

Use o método síncrono Receive quando for aceitável que a thread atual seja bloqueada até receber a mensagem de pedido ou ultrapassar o intervalo de tempo especificado por timeout. Use o método assíncrono BeginReceive quando quiser que o processamento da candidatura continue sem esperar que o pedido seja recebido.

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

Se uma mensagem não estiver disponível, bloqueia-se até que uma esteja disponível ou até que o timeout seja ultrapassado.

Receive pode ser chamada várias vezes ou em simultâneo. Apenas uma Receive chamada pode ser concluída por cada mensagem recebida.

Aplica-se a