次の方法で共有


IReplyChannel.BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object) メソッド

定義

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

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

パラメーター

timeout
TimeSpan

要求受信操作を完了する必要がある制限時間を指定する TimeSpan。この時間を経過すると、タイムアウトして false が返されます。

callback
AsyncCallback

要求操作が完了したという非同期受信の通知を受信する AsyncCallback デリゲート。

state
Object

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

戻り値

非同期要求受信操作を参照する IAsyncResult

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

public IAsyncResult BeginTryReceiveRequest(TimeSpan timeout, AsyncCallback callback, object state)
{
    TryReceiveRequestAsyncResult result = new TryReceiveRequestAsyncResult(this, timeout, callback, state);
    result.Begin();
    return result;
}

注釈

待機せずにアプリケーションの処理を継続する必要がある場合は、非同期の BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object) メソッドを使用します。 要求メッセージに応答している間、またはタイムアウト期間が経過するまで、現在のスレッドがブロックされてもかまわない場合は、いずれかの同期 TryReceiveRequest(TimeSpan, RequestContext) メソッドを使用します。

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

注意 (実装者)

指定した false が経過した場合、操作は timeout を返します。

適用対象