語言

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 是非同步操作,等待訊息到達。

例外狀況

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,而不是逾時例外。

適用於