Language

IInputChannel.BeginWaitForMessage(TimeSpan, AsyncCallback, Object) メソッド

定義

指定したタイムアウトと状態オブジェクトが関連付けられた、メッセージから到着までの非同期待機操作を開始します。

public:
 IAsyncResult ^ BeginWaitForMessage(TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginWaitForMessage(TimeSpan timeout, AsyncCallback callback, object state);
abstract member BeginWaitForMessage : TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginWaitForMessage (timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

timeout
TimeSpan

メッセージが使用可能になるまでの待機時間を指定する TimeSpan 。

callback
AsyncCallback

非同期操作の完了の通知を受け取る AsyncCallback デリゲート。

state
Object

非同期操作に関連付けられた状態情報を含むオブジェクト。アプリケーションによって指定されます。

返品

メッセージが到着するまで待機する非同期操作を参照する IAsyncResult 。

例外

指定した timeout を超えると、操作が完了します。

指定されたタイムアウトが 0 未満です。

例

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

public IAsyncResult BeginWaitForMessage(TimeSpan timeout, AsyncCallback callback, object state)
{
    return this.InnerChannel.BeginWaitForMessage(timeout, callback, state);
}

注釈

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

このメソッドは、コールバックを介して、操作のイベント ハンドラーの ID の通知を受け取ります。 チャネルでメッセージが使用可能になるか、タイムアウトが発生するまで、操作は完了しません。

注意 (実装者)

指定したfalseを超えた場合、操作はタイムアウト例外ではなく、timeoutを返します。

適用対象