다음을 통해 공유


IInputChannel.Receive 메서드

정의

명시적 또는 암시적으로 정의된 시간 간격에 메시지가 사용 가능한 경우 입력 채널이 수신한 메시지를 반환합니다.

오버로드

Receive()

메시지가 사용 가능한 경우 수신된 메시지를 반환합니다. 메시지를 사용할 수 없는 경우 기본 시간 간격 동안 차단합니다.

Receive(TimeSpan)

메시지가 사용 가능한 경우 수신된 메시지를 반환합니다. 메시지를 사용할 수 없는 경우 지정된 시간 간격 동안 차단합니다.

설명

현재 스레드가 요청 메시지를 받거나 에서 지정timeout한 시간 간격을 초과할 때까지 차단할 수 있는 경우 동기 Receive 메서드를 사용합니다. 요청 수신을 대기하지 않고 애플리케이션 처리를 계속해야 하는 경우 비동기 BeginReceive 메서드를 사용합니다.

동기 Receive 작업은 명시적 시간 제한의 유무에 관계없이 사용할 수 있습니다.

메시지를 사용할 수 없는 경우 메시지를 사용할 수 있거나 시간 제한이 초과될 때까지 차단됩니다.

Receive()

Source:
IInputChannel.cs

메시지가 사용 가능한 경우 수신된 메시지를 반환합니다. 메시지를 사용할 수 없는 경우 기본 시간 간격 동안 차단합니다.

public:
 System::ServiceModel::Channels::Message ^ Receive();
public System.ServiceModel.Channels.Message Receive ();
abstract member Receive : unit -> System.ServiceModel.Channels.Message
Public Function Receive () As Message

반환

수신된 Message입니다.

예제

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

public Message Receive()
{
    return Receive(DefaultReceiveTimeout);
}

설명

현재 스레드가 요청 메시지를 받거나 에서 지정timeout한 시간 간격을 초과할 때까지 차단할 수 있는 경우 동기 Receive 메서드를 사용합니다. 요청 수신을 대기하지 않고 애플리케이션 처리를 계속하려는 경우 비동기 BeginReceive 메서드를 사용합니다.

동기 Receive 작업은 명시적 시간 제한의 유무에 관계없이 사용할 수 있습니다.

메시지를 사용할 수 없는 경우 메시지를 사용할 수 있거나 시간 제한이 초과될 때까지 차단됩니다.

Receive를 여러 번 또는 동시에 호출할 수 있습니다. 받은 각 메시지에 대해 하나의 Receive 호출만 완료할 수 있습니다.

적용 대상

Receive(TimeSpan)

Source:
IInputChannel.cs

메시지가 사용 가능한 경우 수신된 메시지를 반환합니다. 메시지를 사용할 수 없는 경우 지정된 시간 간격 동안 차단합니다.

public:
 System::ServiceModel::Channels::Message ^ Receive(TimeSpan timeout);
public System.ServiceModel.Channels.Message Receive (TimeSpan timeout);
abstract member Receive : TimeSpan -> System.ServiceModel.Channels.Message
Public Function Receive (timeout As TimeSpan) As Message

매개 변수

timeout
TimeSpan

시간 제한이 초과되어 TimeSpan이 throw되기 전에 수신 작업이 완료되어야 하는 기간을 지정하는 TimeoutException입니다.

반환

수신된 Message입니다.

예외

작업을 완료하기 전에 지정된 timeout이 초과된 경우

지정된 시간 제한이 0보다 작은 경우

예제

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

public Message Receive(TimeSpan timeout)
{
    Message message;
    while (true)
    {
        message = this.InnerChannel.Receive(timeout);
        if (ProcessReceivedMessage(ref message))
        {
            break;
        }
    }

    return message;
}

설명

현재 스레드가 요청 메시지를 받거나 에서 지정timeout한 시간 간격을 초과할 때까지 차단할 수 있는 경우 동기 Receive 메서드를 사용합니다. 요청 수신을 대기하지 않고 애플리케이션 처리를 계속하려는 경우 비동기 BeginReceive 메서드를 사용합니다.

동기 Receive 작업은 명시적 시간 제한의 유무에 관계없이 사용할 수 있습니다.

메시지를 사용할 수 없는 경우 메시지를 사용할 수 있거나 시간 제한이 초과될 때까지 차단됩니다.

Receive를 여러 번 또는 동시에 호출할 수 있습니다. 받은 각 메시지에 대해 하나의 Receive 호출만 완료할 수 있습니다.

적용 대상