Share via


IReplyChannel.TryReceiveRequest(TimeSpan, RequestContext) メソッド

定義

指定した期間が経過する前に要求を受信するかどうかを示す値を返します。

public:
 bool TryReceiveRequest(TimeSpan timeout, [Runtime::InteropServices::Out] System::ServiceModel::Channels::RequestContext ^ % context);
public bool TryReceiveRequest (TimeSpan timeout, out System.ServiceModel.Channels.RequestContext context);
abstract member TryReceiveRequest : TimeSpan * RequestContext -> bool
Public Function TryReceiveRequest (timeout As TimeSpan, ByRef context As RequestContext) As Boolean

パラメーター

timeout
TimeSpan

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

context
RequestContext

受信した RequestContext

戻り値

指定した期間が経過する前に要求メッセージを受信する場合は true、それ以外の場合は false

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

public bool TryReceiveRequest(TimeSpan timeout, out RequestContext requestContext)
{
    bool result;

    while (true)
    {
        result = this.InnerChannel.TryReceiveRequest(timeout, out requestContext);
        if (!result || ProcessRequestContext(ref requestContext))
        {
            break;
        }
    }

    return result;
}

注釈

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

注意 (実装者)

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

適用対象