次の方法で共有


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

メッセージが到着するのを待機するための非同期操作を参照する 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 を返します。

適用対象