Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La libreria degli agenti asincroni fornisce diverse funzioni che consentono di passare messaggi tra i componenti.
Queste funzioni di passaggio di messaggi vengono usate con i vari tipi di blocco di messaggi. Per altre informazioni sui tipi di blocco di messaggi definiti dal runtime di concorrenza, vedere Blocchi messaggi asincroni.
Sezioni
In questo argomento vengono descritte le funzioni di passaggio dei messaggi seguenti:
invia e ascendi
La funzione concurrency::send invia un messaggio alla destinazione specificata in modo sincrono e la funzione concurrency::asend invia un messaggio alla destinazione specificata in modo asincrono. Entrambe le send funzioni e asend attendono fino a quando la destinazione non indica che accetterà o rifiuta il messaggio.
La send funzione attende fino a quando la destinazione non accetta o rifiuta il messaggio prima che venga restituito. La send funzione restituisce true se il messaggio è stato recapitato e false in caso contrario. Poiché la send funzione funziona in modo sincrono, la send funzione attende che la destinazione riceva il messaggio prima che venga restituito.
Al contrario, la asend funzione non attende che la destinazione accetti o rifiuta il messaggio prima che venga restituito. La funzione restituisce asendtrue invece se la destinazione accetta il messaggio e la accetta. In caso contrario, restituisce asendfalse per indicare che la destinazione ha rifiutato il messaggio o ha posticipato la decisione su se accettare il messaggio.
ricevere e try_receive
Le funzioni concurrency::receive e concurrency::try_receive leggono i dati da una determinata origine. La receive funzione attende che i dati diventino disponibili, mentre la try_receive funzione restituisce immediatamente.
Usare la receive funzione quando è necessario disporre dei dati per continuare. Usare la try_receive funzione se non è necessario bloccare il contesto corrente o non è necessario che i dati continuino.
Esempi
Per esempi che usano le send funzioni e asende receive , vedere gli argomenti seguenti:
Procedura: Fornire funzioni lavoro alle classi call e transformer
Procedura: Usare la classe transformer in una pipeline di dati
Vedi anche
Libreria di agenti asincroni
Blocchi dei messaggi asincroni
Funzione send
Funzione asend
Funzione receive
Funzione try_receive