IInputChannel.Receive Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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
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.