Aracılığıyla paylaş


alma işlevi

Genel uygulama, tek bir kaynaktan gelen verileri bekleyin ve kabul edilen değerler için filtre bir içerik sağlayarak alırsınız.

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
);

Parametreler

  • _Type
    Yük türü.

  • _Src
    İşaretçi veya kendisinden beklenen veri kaynağına başvuru.

  • _Timeout
    Kendisi için gereken yöntemi en uzun süreyi milisaniye cinsinden veri.

  • _Filter_proc
    İletileri kabul olup olmadığını belirleyen bir filtre işlevi.

Dönüş Değeri

Yük türü, kaynak değeri.

Notlar

Parametre _Timeout dışında sabit bir değere sahip COOPERATIVE_TIMEOUT_INFINITE, özel durum operation_timed_out bir ileti aldı önce belirtilen sürenin sona ererse atılır. Sıfır uzunluk zaman aşımı istiyorsanız kullanmalısınız try_receive arama karşıt olarak işlev receive zaman aşımı süresi ile 0 (sıfır), daha verimli ve özel durumlar zaman aşımlarını durum oluşturmaz.

Daha fazla bilgi için bkz. İleti gönderme fonksiyonları.

Gereksinimler

Başlık: agents.h

Namespace: eşzamanlılık

Ayrıca bkz.

Başvuru

eşzamanlılık ad

try_receive işlevi

İşlev Gönder

asend işlevi