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

定義

開始非同步的「等候訊息到達」(wait-for-a-message-to-arrive) 作業,這個作業具有指定的逾時以及與該作業關聯之狀態物件。

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 為止。

這個方法會透過回呼 (Callback),接收有關作業之事件處理常式身分識別的通知。 在訊息可以於通道中使用或發生逾時之後,作業才會完成。

給實施者的注意事項

如果超出了指定的 false,作業會傳回 timeout,而不是傳回逾時例外狀況。

適用於