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가 반환됩니다.

적용 대상