次の方法で共有


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 を返します。

適用対象