다음을 통해 공유


receive 함수

컨텍스트가 정확히 한 소스에서 데이터를 기다리고 수신된 값을 필터링할 수 있는 일반 수신 구현입니다.

template <
   class _Type
>
_Type receive(
   ISource<_Type> * _Src,
   unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE
);
template <
   class _Type
>
_Type receive(
   ISource<_Type> * _Src,
   typename ITarget<_Type>::filter_method const& _Filter_proc,
   unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE
);
template <
   class _Type
>
_Type receive(
   ISource<_Type> &_Src,
   unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE
);
template <
   class _Type
>
_Type receive(
   ISource<_Type> &_Src,
   typename ITarget<_Type>::filter_method const& _Filter_proc,
   unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE
);

매개 변수

  • _Type
    페이로드 형식입니다.

  • _Src
    데이터가 예상되는 소스에 대한 포인터 또는 참조입니다.

  • _Timeout
    메서드가 데이터에 대해 가져야 하는 밀리초 단위의 최대 시간입니다.

  • _Filter_proc
    메시지 수락 여부를 결정하는 필터 함수입니다.

반환 값

페이로드 형식의 소스 값입니다.

설명

매개 변수 _Timeout이 상수 COOPERATIVE_TIMEOUT_INFINITE 이외의 값을 갖는 경우 지정된 시간이 메시지를 받기 전에 경과되면 예외 operation_timed_out이 throw됩니다. 길이가 0인 시간 초과를 원하는 경우 보다 효율적이기 때문에 시간 초과 0(제로)으로 receive를 호출하는 것과 반대로 try_receive 함수를 사용해야 하며 시간 초과에 대한 예외를 throw하지 않습니다.

자세한 내용은 메시지 전달 함수을 참조하십시오.

요구 사항

헤더: agents.h

네임스페이스: 동시성

참고 항목

참조

동시성 네임스페이스

try_receive 함수

send 함수

asend 함수