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