IInputChannel.WaitForMessage(TimeSpan) 方法

定义

返回一个值,该值指示消息是否在指定的时间间隔内到达。

public:
 bool WaitForMessage(TimeSpan timeout);
public bool WaitForMessage (TimeSpan timeout);
abstract member WaitForMessage : TimeSpan -> bool
Public Function WaitForMessage (timeout As TimeSpan) As Boolean

参数

timeout
TimeSpan

TimeSpan 指定在超时前等待消息到达所用的最大时间间隔。

返回

Boolean

如果消息在超出 true 之前到达,则为 timeout;否则为 false

例外

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

指定的超时小于零。

示例

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

public bool WaitForMessage(TimeSpan timeout)
{
    return this.InnerChannel.WaitForMessage(timeout);
}

注解

调用 WaitForMessage(TimeSpan) 不会导致以任何其他方式接收或处理消息。

WaitForMessage(TimeSpan) 方法主要用于用户要使用事务接收消息的事务处理方案。 在通常只需要为此使用 Receive 时,用户必须创建事务,然后调用 Receive 并希望消息在事务超时前到达,但这可能不可行。

用户可以改为调用 WaitForMessage(TimeSpan) 并指定所需的任何超时值(甚至是无限超时值),接着在消息到达时,可以打开事务,调用 Receive 并确信它们能在事务过期前取回消息。

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

实施者说明

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

适用于