IReplyChannel.WaitForRequest(TimeSpan) メソッド

定義

指定した時間間隔が経過する前に要求メッセージを受信するかどうかを示す値を返します。

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

パラメーター

timeout
TimeSpan

タイムアウトしてTimeSpanを返す前に要求操作を完了する必要がある時間を指定するfalse

返品

true 指定された時間間隔が経過する前に要求を受信した場合。それ以外の場合は false

次のコードは、このメソッドを実装する方法を示しています。

public bool WaitForRequest(TimeSpan timeout)
{
    return this.InnerChannel.WaitForRequest(timeout);
}

注釈

WaitForRequest(TimeSpan)を呼び出しても、要求メッセージが受信または処理されることはありません。

BeginWaitForRequest(TimeSpan, AsyncCallback, Object) メソッドは主に、トランザクションを使用してユーザーがメッセージを受信するトランザクションシナリオに存在します。 これに対して通常 ReceiveRequest 使用する場合、ユーザーはトランザクションを作成し、 ReceiveRequest を呼び出し、トランザクションがタイムアウトする前にメッセージが到着することを期待する必要があります。これは不可能な場合があります。

代わりに、ユーザーは WaitForRequest(TimeSpan) を呼び出してタイムアウト (無限) を指定できます。その後、メッセージが到着したら、トランザクションを開き、 ReceiveRequest を呼び出し、トランザクションの有効期限が切れる前にメッセージを取得できることを確信できます。

メッセージがキューに到着するのを待機している間に、現在のスレッドがブロックされるのを許容できる場合は、 WaitForRequest(TimeSpan) を使用します。 スレッドは、指定した timeoutまでブロックされます。 待機せずにアプリケーション処理を続行する必要がある場合は、非同期の BeginWaitForRequest(TimeSpan, AsyncCallback, Object) メソッドを使用します。

注意 (実装者)

指定したfalseを超えた場合、操作はtimeoutを返します。

適用対象