IInputChannel.TryReceive(TimeSpan, Message) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Tenta 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
Eles IAsyncResult responderam com uma chamada para um dos BeginReceive métodos.
Devoluções
true se uma mensagem for recebida antes de ter timeout sido ultrapassada; caso contrário false.
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 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;
}
Observações
Se vais tratar dos tempos mortos e não apenas relançar ou envolver o TimeoutException, então deves chamar TryReceive(TimeSpan, Message) em vez de Receive.
Se não vais tratar os tempos de espera de forma especial, liga, Receivecaso contrário vais perder a informação de erro.