IReplyChannel.BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object) 方法

定义

开始用于接收请求消息的异步操作,该操作具有指定的超时值和状态对象与之关联。

public:
 IAsyncResult ^ BeginTryReceiveRequest(TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginTryReceiveRequest (TimeSpan timeout, AsyncCallback callback, object state);
abstract member BeginTryReceiveRequest : TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginTryReceiveRequest (timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult

参数

timeout
TimeSpan

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

callback
AsyncCallback

AsyncCallback 委托,接收请求操作完成的异步接收的通知。

state
Object

一个由应用程序指定的对象,它包含与请求操作的异步接收相关联的状态信息。

返回

引用该异步接收请求操作的 IAsyncResult

示例

下面的代码演示如何实现此方法:

public IAsyncResult BeginTryReceiveRequest(TimeSpan timeout, AsyncCallback callback, object state)
{
    TryReceiveRequestAsyncResult result = new TryReceiveRequestAsyncResult(this, timeout, callback, state);
    result.Begin();
    return result;
}

注解

如果需要应用程序处理继续进行而不等待,则使用异步 BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object) 方法。 如果当前线程在回复请求消息时可以被阻塞,或者一直被阻塞到超出超时间隔,则使用同步 TryReceiveRequest(TimeSpan, RequestContext) 方法之一。

此方法通过回调为操作接收事件处理程序标识的通知。 直到通道中出现消息时或发生超时时才完成操作。

实施者说明

如果超出指定的 false,此操作返回 timeout

适用于