訊息傳遞函式

非同步代理程式程式庫提供數個可讓您在元件之間傳遞訊息的函式。

這些訊息傳遞函式可搭配各種不同的訊息區塊類型使用。如需並行執行階段所定義之訊息區塊類型的詳細資訊,請參閱非同步訊息區

章節

本主題說明下列訊息傳遞函式:

  • send 和 asend

  • receive 和 try_receive

  • 範例

send 和 asend

Concurrency::send 函式會傳送訊息至指定的目標以同步方式與 concurrency::asend 函式會傳送訊息至指定的目標以非同步的方式。sendasend 函式都會等候目標表示終於接受或拒絕訊息。

send 函式會等到目標接受或拒絕訊息再傳回。如果已傳遞訊息,則 send 函式會傳回 true,否則會傳回 false。因為 send 函式是以同步方式運作,所以 send 函式會等到目標收到訊息再傳回。

相反地,asend 函式並不會等到目標接受或拒絕訊息才傳回。如果目標接受訊息,而且最後會採用它,則 asend 函式會傳回 true。否則,asend 會傳回 false,表示目標已拒絕訊息,或是以後才要決定是否採用訊息。

Top

receive 和 try_receive

Concurrency::receiveconcurrency::try_receive 函式從指定的來源讀取資料。receive 函式會等到有資料可用時才傳回,而 try_receive 函式則會立即傳回。

當您必須要有資料才能繼續時,請使用 receive 函式。如果您絕對不能封鎖目前的內容,或是沒有資料也可以繼續,請使用 try_receive 函式。

Top

範例

如需使用 sendasendreceive 函式的範例,請參閱下列主題:

Top

請參閱

參考

send 函式

asend 函式

receive 函式

try_receive 函式

概念

非同步代理程式程式庫

非同步訊息區