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
が経過しました。
指定したタイムアウトの値が 0 未満です。
例
このメソッドを実装する方法を次のコードに示します。
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
を返します。
適用対象
.NET