IInputChannel.BeginReceive メソッド

定義

非同期の受信操作を開始します。

オーバーロード

BeginReceive(AsyncCallback, Object)

状態オブジェクトが関連付けられているメッセージを受信するための非同期操作を開始します。

BeginReceive(TimeSpan, AsyncCallback, Object)

タイムアウトが指定され、状態オブジェクトが関連付けられているメッセージを受信するための、非同期操作を開始します。

注釈

要求の受信を待たずにアプリケーションの処理を継続する場合は、非同期の BeginReceive メソッドを使用します。 要求メッセージを受信するか、timeout で指定された時間が経過するまで、現在のスレッドがブロックされてもかまわない場合は、同期 Receive メソッドを使用します。 非同期操作は、明示的なタイムアウトの指定の有無にかかわらず、使用できます。

BeginReceive(AsyncCallback, Object)

状態オブジェクトが関連付けられているメッセージを受信するための非同期操作を開始します。

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

パラメーター

callback
AsyncCallback

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

state
Object

非同期操作に関連付けられている状態情報を格納するオブジェクト。アプリケーションで指定します。

戻り値

IAsyncResult

非同期メッセージ受信を参照する IAsyncResult

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

public IAsyncResult BeginReceive(AsyncCallback callback, object state)
{
    return BeginReceive(DefaultReceiveTimeout, callback, state);
}

注釈

要求の受信を待たずにアプリケーションの処理を継続する場合は、非同期の BeginReceive メソッドを使用します。 要求メッセージを受信するか、timeout で指定された時間が経過するまで、現在のスレッドがブロックされてもかまわない場合は、同期 Receive メソッドを使用します。 非同期操作は、明示的なタイムアウトの指定の有無にかかわらず、使用できます。

このメソッドは、コールバックを通じて操作のイベント ハンドラー ID の通知を受信します。 操作は、チャネルのメッセージが利用可能になるまで完了しません。

適用対象

BeginReceive(TimeSpan, AsyncCallback, Object)

タイムアウトが指定され、状態オブジェクトが関連付けられているメッセージを受信するための、非同期操作を開始します。

public:
 IAsyncResult ^ BeginReceive(TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (TimeSpan timeout, AsyncCallback callback, object state);
abstract member BeginReceive : TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (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 BeginReceive(TimeSpan timeout, AsyncCallback callback, object state)
{
    ReceiveAsyncResult<TChannel> result = new ReceiveAsyncResult<TChannel>(this, timeout, callback, state);
    result.Begin();
    return result;
}

注釈

要求の受信を待たずにアプリケーションの処理を継続する場合は、非同期の BeginReceive メソッドを使用します。 要求メッセージを受信するか、timeout で指定された時間が経過するまで、現在のスレッドがブロックされてもかまわない場合は、同期 Receive メソッドを使用します。 非同期操作は、明示的なタイムアウトの指定の有無にかかわらず、使用できます。

この操作は、チャネルでメッセージを使用できるようになるか、タイムアウトが発生するまで完了しません。

注意 (実装者)

操作が完了する前に指定の TimeoutException を超えた場合に、timeout をスローします。

適用対象