Funkcje przekazywania komunikatów
Biblioteka asynchronicznych agentów udostępnia kilka funkcji, które umożliwiają przekazywanie komunikatów między składnikami.
Te funkcje przekazywania komunikatów są używane z różnymi typami bloków komunikatów. Aby uzyskać więcej informacji na temat typów bloków komunikatów zdefiniowanych przez środowisko uruchomieniowe współbieżności, zobacz Asynchroniczne bloki komunikatów.
Sekcje
W tym temacie opisano następujące funkcje przekazywania komunikatów:
wyślij i wyślij jako
Funkcja concurrency::send wysyła komunikat do określonego obiektu docelowego synchronicznie, a funkcja concurrency::asend wysyła komunikat do określonego obiektu docelowego asynchronicznie. send
Obie funkcje i asend
czekają, aż element docelowy wskaże, że ostatecznie zaakceptuje lub odrzuci komunikat.
Funkcja send
czeka na zaakceptowanie lub odrzucenie komunikatu przez element docelowy przed jego zwróceniem. Funkcja send
zwraca true
wartość , jeśli komunikat został dostarczony i false
w inny sposób. send
Ponieważ funkcja działa synchronicznie, send
funkcja czeka, aż obiekt docelowy otrzyma komunikat, zanim zwróci.
asend
Z drugiej strony funkcja nie czeka na zaakceptowanie lub odrzucenie komunikatu przez element docelowy przed jego zwróceniem. Zamiast tego funkcja zwraca true
wartość asend
, jeśli element docelowy akceptuje komunikat i ostatecznie go zabierze. W przeciwnym razie zwraca wartość false
wskazującą, asend
że element docelowy odrzucił komunikat lub odroczył decyzję o tym, czy podjąć wiadomość.
[Top]
odbieranie i try_receive
Współbieżność ::receive i współbieżność::try_receive funkcje odczytują dane z danego źródła. Funkcja receive
czeka, aż dane staną się dostępne, podczas gdy try_receive
funkcja zwraca natychmiast.
receive
Użyj funkcji , gdy musisz mieć dane, aby kontynuować. try_receive
Użyj funkcji , jeśli nie możesz zablokować bieżącego kontekstu lub nie musisz mieć danych, aby kontynuować.
[Top]
Przykłady
Przykłady użycia send
funkcji i i asend
receive
można znaleźć w następujących tematach:
Instrukcje: implementowanie różnych wzorców producent — konsument
Instrukcje: zapewnianie funkcji pracy dla wywoływania oraz klasy transformatora
Instrukcje: wysyłanie komunikatu w regularnych odstępach czasu
[Top]
Zobacz też
Biblioteki agentów asynchronicznych
Bloki komunikatów asynchronicznych
send, funkcja
asend, funkcja
receive, funkcja
try_receive, funkcja