IReplyChannel.TryReceiveRequest(TimeSpan, RequestContext) 方法

定义

返回一个值,该值指示是否在经历指定的时间间隔之前接收到请求。

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

参数

timeout
TimeSpan

一个 TimeSpan,指定接收请求操作的完成时限,在此时限之后操作将超时并返回 false

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

适用于