Sdílet prostřednictvím


receive – funkce

Obecné přijímat provedení, umožňující kontextu čekat na data z přesně jednoho zdroje a filtrovat hodnoty, které jsou přijaty.

template <
   class _Type
>
_Type receive(
   _Inout_ ISource<_Type> * _Src,
   unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE
);

template <
   class _Type
>
_Type receive(
   _Inout_ 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
);

Parametry

  • _Type
    Typ datové části.

  • _Src
    Ukazatel nebo odkaz na zdroj, ze kterého je očekávána data.

  • _Timeout
    Maximální čas pro které by měly metody pro data v milisekundách.

  • _Filter_proc
    Funkce filtru, která určuje, zda mají být přijímány zprávy.

Vrácená hodnota

Hodnota ze zdroje typu datové části.

Poznámky

Pokud parametr _Timeout má hodnotu než konstanta COOPERATIVE_TIMEOUT_INFINITE, výjimka operation_timed_out když specifikovaný čas vyprší přijata zpráva.Pokud chcete časový limit nulové délky, byste měli použít try_receive funkce, jako protiklad k volání receive s časový limit 0 (nula), je efektivnější a není vyvolávají výjimky časových limitů.

Další informace naleznete v tématu Funkce usnadnění.

Požadavky

Záhlaví: agents.h

Obor názvů: souběžnosti

Viz také

Referenční dokumentace

concurrency – obor názvů

try_receive – funkce

send – funkce

asend – funkce