IInputChannel.TryReceive(TimeSpan, Message) 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.
Tentar receber uma mensagem dentro de um intervalo de tempo especificado.
public:
bool TryReceive(TimeSpan timeout, [Runtime::InteropServices::Out] System::ServiceModel::Channels::Message ^ % message);
public bool TryReceive (TimeSpan timeout, out System.ServiceModel.Channels.Message message);
abstract member TryReceive : TimeSpan * Message -> bool
Public Function TryReceive (timeout As TimeSpan, ByRef message As Message) As Boolean
Parâmetros
- timeout
- TimeSpan
O IAsyncResult retornado por uma chamada para um dos métodos BeginReceive.
Retornos
true
se uma mensagem for recebida antes que o timeout
seja excedido; caso contrário false
.
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 este método:
public bool TryReceive(TimeSpan timeout, out Message message)
{
bool result;
while (true)
{
result = this.InnerChannel.TryReceive(timeout, out message);
if (ProcessReceivedMessage(ref message))
{
break;
}
}
return result;
}
Comentários
Se você vai lidar com tempos limite e não apenas re-lançar ou encapsular, TimeoutExceptionentão você deve chamar TryReceive(TimeSpan, Message) em vez de Receive.
Se você não for tratar os tempos limite especialmente, basta ligar Receive, caso contrário, perderá as informações de erro.