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