訊息傳遞函式

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

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

區段

本主題描述下列訊息傳遞函式:

send 和 asend

並行::send 函式會 以同步方式將訊息傳送至指定的目標,而 並行::asend 函式會以非同步方式將訊息傳送至指定的目標。 sendasend 函式會等到目標表示最終將接受或拒絕訊息為止。

send 式會等到目標在傳回之前接受或拒絕訊息為止。 如果傳遞訊息, false 則函 send 式會 true 傳回 ,否則會傳回 。 因為函 send 式會同步運作,所以函 send 式會等候目標在傳回訊息之前接收訊息。

相反地,函 asend 式不會等待目標在傳回之前接受或拒絕訊息。 相反地, asend 如果目標接受訊息,且最終會接受訊息,函式會傳回 true 。 否則, asend 會傳回 false ,表示目標已拒絕訊息,或延後決定是否要接受訊息的決定。

[靠上]

receive and try_receive

concurrency::receive concurrency::try_receive 函式會從指定的來源讀取資料。 函 receive 式會等候資料可供使用,而函 try_receive 式會立即傳回。

當您必須讓資料繼續時,請使用 函 receive 式。 如果您不得封鎖目前的內容,或不需要繼續資料,請使用 函 try_receive 式。

[靠上]

範例

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

[靠上]

另請參閱

非同步代理程式程式庫
非同步訊息區
send 函式
asend 函式
receive 函式
try_receive函式