訊息傳遞函式
非同步代理程式程式庫提供數個可讓您在元件之間傳遞訊息的函式。
這些訊息傳遞函式可搭配各種不同的訊息區塊類型使用。如需並行執行階段所定義之訊息區塊類型的詳細資訊,請參閱非同步訊息區。
章節
本主題說明下列訊息傳遞函式:
send 和 asend
receive 和 try_receive
範例
send 和 asend
Concurrency::send 函式會傳送訊息至指定的目標以同步方式與 concurrency::asend 函式會傳送訊息至指定的目標以非同步的方式。send 和 asend 函式都會等候目標表示終於接受或拒絕訊息。
send 函式會等到目標接受或拒絕訊息再傳回。如果已傳遞訊息,則 send 函式會傳回 true,否則會傳回 false。因為 send 函式是以同步方式運作,所以 send 函式會等到目標收到訊息再傳回。
相反地,asend 函式並不會等到目標接受或拒絕訊息才傳回。如果目標接受訊息,而且最後會採用它,則 asend 函式會傳回 true。否則,asend 會傳回 false,表示目標已拒絕訊息,或是以後才要決定是否採用訊息。
Top
receive 和 try_receive
Concurrency::receive 和 concurrency::try_receive 函式從指定的來源讀取資料。receive 函式會等到有資料可用時才傳回,而 try_receive 函式則會立即傳回。
當您必須要有資料才能繼續時,請使用 receive 函式。如果您絕對不能封鎖目前的內容,或是沒有資料也可以繼續,請使用 try_receive 函式。
Top
範例
如需使用 send、asend 和 receive 函式的範例,請參閱下列主題:
Top