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 BeginReceive métodos.
Devoluciones
true es si se recibe un mensaje antes timeout de que se haya superado; de lo contrario false, es .
Excepciones
El especificado timeout se supera antes de que se complete la operación.
El tiempo de espera especificado es menor que cero.
Ejemplos
En el código siguiente se 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 controlar los tiempos de espera y no solo volver a iniciar o encapsular TimeoutException, debe llamar a TryReceive(TimeSpan, Message) en lugar de Receive.
Si no va a tratar los tiempos de espera especialmente, simplemente llame a Receive, de lo contrario, perderá la información de error.