IInputChannel.TryReceive(TimeSpan, Message) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Intenta recibir un mensaje dentro de un intervalo de tiempo 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
IAsyncResult devuelto por una llamada a uno de los métodos BeginReceive.
Devoluciones
true
si se recibe un mensaje antes de que se haya superado timeout
; de lo contrario false
.
Excepciones
Se supera el timeout
especificado antes de que se complete la operación.
El tiempo de espera especificado es menor que cero.
Ejemplos
El código siguiente muestra cómo 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;
}
Comentarios
Si va a administrar los tiempos de espera y no sólo reiniciar o encapsular TimeoutException, debería llamar a TryReceive(TimeSpan, Message) en lugar de Receive.
Si no va a tratar especialmente los tiempos de espera, llame a Receive, de lo contrario perderá información de error.