Udostępnij za pośrednictwem


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 asendreceive można znaleźć w następujących tematach:

[Top]

Zobacz też

Biblioteki agentów asynchronicznych
Bloki komunikatów asynchronicznych
send, funkcja
asend, funkcja
receive, funkcja
try_receive, funkcja