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