IInputChannel.BeginWaitForMessage(TimeSpan, AsyncCallback, Object) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
開始非同步的「等候訊息到達」(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
參數
- 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
為止。
這個方法會透過回呼 (Callback),接收有關作業之事件處理常式身分識別的通知。 在訊息可以於通道中使用或發生逾時之後,作業才會完成。
給實施者的注意事項
如果超出了指定的 false
,作業會傳回 timeout
,而不是傳回逾時例外狀況。