IInputChannel.WaitForMessage(TimeSpan) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回一个值,该值指示消息是否在指定的时间间隔内到达。
public:
bool WaitForMessage(TimeSpan timeout);
public bool WaitForMessage (TimeSpan timeout);
abstract member WaitForMessage : TimeSpan -> bool
Public Function WaitForMessage (timeout As TimeSpan) As 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
,而不返回超时异常。