IInputChannel.BeginWaitForMessage(TimeSpan, AsyncCallback, Object) 方法

定义

开始异步等待消息到达操作,该操作具有指定的超时值和状态对象与之关联。

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

参数

timeout
TimeSpan

一个 TimeSpan,指定等待消息变为可用所用的时间间隔。

callback
AsyncCallback

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

state
Object

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

返回

IAsyncResult

引用等待消息到达的异步操作的 IAsyncResult

例外

在操作完成前超出指定的 timeout

指定的超时小于零。

示例

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

public IAsyncResult BeginWaitForMessage(TimeSpan timeout, AsyncCallback callback, object state)
{
    return this.InnerChannel.BeginWaitForMessage(timeout, callback, state);
}

注解

如果需要应用程序处理继续进行而不等待消息到达,则使用异步 BeginWaitForMessage(TimeSpan, AsyncCallback, Object) 方法。 如果当前线程在等待消息到达队列时可以被阻塞,则使用同步 WaitForMessage(TimeSpan) 方法。 该线程最多被阻塞 timeout 指定的时间长度。

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

实施者说明

如果超出指定的 false,则操作返回 timeout,而不返回超时异常。

适用于