訊息傳遞函式
更新:2011 年 3 月
非同步代理程式程式庫提供數個可讓您在元件之間傳遞訊息的函式。
這些訊息傳遞函式可搭配各種不同的訊息區塊類型使用。 如需並行執行階段所定義之訊息區塊類型的詳細資訊,請參閱非同步訊息區。
章節
本主題說明下列訊息傳遞函式:
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 函式的範例,請參閱下列主題:
回到頁首
請參閱
參考
概念
變更記錄
日期 |
記錄 |
原因 |
---|---|---|
2011 年 3 月 |
釐清 send 和 asend 函式之間的差異。 |
客戶回函。 |
2010 年 8 月 |
加入範例連結。 |
資訊加強。 |