IReplyChannel.TryReceiveRequest(TimeSpan, RequestContext) 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í.
Devuelve un valor que indica si una solicitud se recibe antes de que transcurra un intervalo de tiempo especificado.
public:
bool TryReceiveRequest(TimeSpan timeout, [Runtime::InteropServices::Out] System::ServiceModel::Channels::RequestContext ^ % context);
public bool TryReceiveRequest (TimeSpan timeout, out System.ServiceModel.Channels.RequestContext context);
abstract member TryReceiveRequest : TimeSpan * RequestContext -> bool
Public Function TryReceiveRequest (timeout As TimeSpan, ByRef context As RequestContext) As Boolean
Parámetros
- timeout
- TimeSpan
TimeSpan que especifica cuánto tiempo tiene una operación de solicitud antes de expirar y devolver false
.
- context
- RequestContext
RequestContext recibido.
Devoluciones
true
si se recibe un mensaje de solicitud antes de que transcurra un intervalo de tiempo especificado; de lo contrario false
.
Ejemplos
El código siguiente muestra cómo implementar este método:
public bool TryReceiveRequest(TimeSpan timeout, out RequestContext requestContext)
{
bool result;
while (true)
{
result = this.InnerChannel.TryReceiveRequest(timeout, out requestContext);
if (!result || ProcessRequestContext(ref requestContext))
{
break;
}
}
return result;
}
Comentarios
Utilice TryReceiveRequest(TimeSpan, RequestContext) cuando sea aceptable bloquear el subproceso actual mientras se espera a que llegue un mensaje de solicitud a la cola. El subproceso está bloqueado hasta el timeout
especificado. Si es necesario que la aplicación siga realizando sus procesos sin esperar, hay que utilizar el método asincrónico BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object).
Notas a los implementadores
La operación devuelve false
si se supera el timeout
especificado.