簡體   English   中英

異步F#與CCR框架

[英]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#計算表達式的模式進行編碼(以一種奇怪的方式,因為它是為創建枚舉數而設計的):

  • AsyncEnumerator也使用此方法,它(IMHO)比CCR更簡單,並且更接近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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM