다음을 통해 공유


IReplyChannel.WaitForRequest(TimeSpan) 메서드

정의

지정된 시간 간격이 경과되기 전에 요청 메시지가 수신되는지 여부를 나타내는 값을 반환합니다.

public:
 bool WaitForRequest(TimeSpan timeout);
public bool WaitForRequest (TimeSpan timeout);
abstract member WaitForRequest : TimeSpan -> bool
Public Function WaitForRequest (timeout As TimeSpan) As Boolean

매개 변수

timeout
TimeSpan

제한 시간이 초과되어 TimeSpan가 반환되기 전에 요청 작업이 완료되어야 하는 기간을 지정하는 false입니다.

반환

지정된 시간 간격이 경과되기 전에 요청이 수신되면 true이고, 그렇지 않으면 false입니다.

예제

다음 코드에서는 이 메서드를 구현하는 방법을 보여 줍니다.

public bool WaitForRequest(TimeSpan timeout)
{
    return this.InnerChannel.WaitForRequest(timeout);
}

설명

WaitForRequest(TimeSpan)를 호출하면 어떤 방법으로든 요청 메시지가 수신되거나 처리되지 않습니다.

BeginWaitForRequest(TimeSpan, AsyncCallback, Object) 메서드는 주로 사용자가 트랜잭션을 사용하여 메시지를 수신하려는 트랜잭션 처리 시나리오에서 사용됩니다. 이 ReceiveRequest 메서드를 일반적으로 사용하면, 사용자는 트랜잭션을 만들고 ReceiveRequest를 호출한 후 트랜잭션 시간 제한 전에 메시지가 도착하기를 기대해야 하는데 이것이 항상 가능하지는 않습니다.

대신 사용자는 WaitForRequest(TimeSpan)를 호출하고 시간 제한을 지정(무한도 가능)할 수 있습니다. 그러면 메시지가 도착할 때 트랜잭션을 열고 ReceiveRequest를 호출한 후 트랜잭션이 만료되기 전에 메시지를 확실히 돌려받을 수 있습니다.

큐에 메시지가 도착할 때까지 대기하는 동안 현재 스레드를 차단하는 것이 허용되는 경우에만 WaitForRequest(TimeSpan)를 사용합니다. 지정된 timeout까지 스레드가 차단됩니다. 대기하지 않고 애플리케이션 처리를 계속하려면 비동기 BeginWaitForRequest(TimeSpan, AsyncCallback, Object) 메서드를 사용합니다.

구현자 참고

지정된 false이 초과된 경우 작업에서 timeout가 반환됩니다.

적용 대상