Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 asend wartość true , jeśli element docelowy akceptuje komunikat i ostatecznie go zabierze. W przeciwnym razie zwraca wartość asend wskazującą, false ż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:
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