IReplyChannel.TryReceiveRequest(TimeSpan, RequestContext) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回一个值,该值指示是否在经历指定的时间间隔之前接收到请求。
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
参数
- context
- RequestContext
接收到的 RequestContext。
返回
如果在经历指定的时间间隔之前接收到请求消息,则为 true
;否则为 false
。
示例
下面的代码演示如何实现此方法:
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;
}
注解
如果当前线程在等待请求消息到达队列时可以被阻塞,则使用 TryReceiveRequest(TimeSpan, RequestContext)。 该线程最多被阻塞 timeout
指定的时间长度。 如果需要应用程序处理继续进行而不等待,则使用异步 BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object) 方法。
实施者说明
如果超出指定的 false
,此操作返回 timeout
。