IInputChannel.WaitForMessage(TimeSpan) 方法

定義

傳回值,這個值會表示訊息是否是在指定的時間間隔內到達。

public:
 bool WaitForMessage(TimeSpan timeout);
public bool WaitForMessage (TimeSpan timeout);
abstract member WaitForMessage : TimeSpan -> bool
Public Function WaitForMessage (timeout As TimeSpan) As Boolean

參數

timeout
TimeSpan

TimeSpan,指定在逾時之前等候訊息到達的最長時間間隔。

傳回

如果訊息是在超過 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,而不是傳回逾時例外狀況。

適用於