Udostępnij za pośrednictwem


receive — Funkcja

Ogólne otrzymywać realizacji, umożliwiając kontekstu, poczekaj, aż dane z dokładnie jednego źródła i filtrować wartości, które są akceptowane.

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 ładunku.

  • _Src
    Wskaźnik lub odwołanie do źródła, z którego oczekuje danych.

  • _Timeout
    Maksymalny czas dla którego metoda powinna danych (w milisekundach).

  • _Filter_proc
    Funkcja filtru, który określa, czy wiadomości powinny być akceptowane.

Wartość zwracana

Wartość ze źródła, typu ładunku.

Uwagi

Jeśli parametr _Timeout ma wartość inną niż stała COOPERATIVE_TIMEOUT_INFINITE, wyjątek operation_timed_out jest generowany, jeśli w określonym czasie wygaśnie, zanim wiadomość zostanie odebrana.Jeśli ma zerowy limit długości należy użyć try_receive w przeciwieństwie do wywołania funkcji receive z limit czasu równy 0 (zero), bardziej efektywne i nie generują wyjątki dla limitów czasu.

Aby uzyskać więcej informacji, zobacz Funkcje przekazywania komunikatów.

Wymagania

Nagłówek: agents.h

Obszar nazw: współbieżności

Zobacz też

Informacje

concurrency — Przestrzeń nazwy

try_receive — Funkcja

send — Funkcja

asend — Funkcja