[英]Async F# vs. CCR framework
在閱讀了有關CCR的文章之后: http : //www.infoq.com/news/2008/12/CCR我得到的印象是它的功能與F#異步塊幾乎完全相同?
您產生port.Receive和port.Test以便與“ let!”相同。
這個對嗎? 在CCR中,有沒有使用F#異步無法獲得的任何好處?
您提到的文章中的示例確實看起來像let!
來自異步工作流程。 通常,C#中的yield return
關鍵字可以對類似於F#計算表達式的模式進行編碼(以一種奇怪的方式,因為它是為創建枚舉數而設計的):
我認為CCR和F#異步工作流之間的主要區別在於CCR還包括用於消息傳遞並發的庫。 例如,請參閱本文 -它使用Port
類(您可以將消息發送到port)和Arbiter.Receive
,這是一個原始Arbiter.Receive
,允許您等待來自Port
消息。
在F#中,可以使用MailboxProcessor
來實現相同的消息傳遞通信模式,但這不是F#異步工作流的內置部分MailboxProcessor
是使用異步工作流實現的。
總結 :我認為F#異步工作流更簡單,概念上更清晰。 但是,CCR和異步工作流與MailboxProcessor
一起實現了大致相同的編程模式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.