訊息傳遞函式
非同步代理程式程式庫提供數個函式,可讓您在元件之間傳遞訊息。
這些訊息傳遞函式會與各種訊息區塊類型搭配使用。 如需並行執行時間所定義之訊息區塊類型的詳細資訊,請參閱 非同步消息塊 。
區段
本主題描述下列訊息傳遞函式:
send 和 asend
並行::send 函式會 以同步方式將訊息傳送至指定的目標,而 並行::asend 函式會以非同步方式將訊息傳送至指定的目標。 send
和 asend
函式會等到目標表示最終將接受或拒絕訊息為止。
函 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
和 和 asend
receive
函式的範例,請參閱下列主題:
[靠上]