阅读有关CCR的信息: http://www.infoq.com/news/2008/12/ccr 我的印象是它的作用与f#async块几乎完全相同吗?

您会产生端口。接收和端口。测试以便与“ Let!”相同。

它是否正确? CCR中是否有任何好处,您不会使用f#async获得?

有帮助吗?

解决方案

您提到的文章中的示例看起来真的很像 let! 来自异步工作流程。通常, yield return C#中的关键字使得可以编码类似于f#计算表达式的模式(以一种怪异的方式,因为它旨在创建枚举者):

  • 这也由 异步量, ,(恕我直言)比CCR更简单,并且更接近f#asynchronous工作流程
  • 我写 一篇文章 这在更多细节上解释了这种类似。

我认为CCR和F#异步工作流之间的关键区别在于,CCR还包括用于通信并发的库。例如,请参见 本文 - 它用 Port 类(您可以将消息发送到端口)和 Arbiter.Receive, ,这是一个原始的,可让您等待来自 Port.

在f#中,您可以使用 MailboxProcessor 用于实施相同的消息通信模式,但这不是F#异步工作流的内置部分 - MailboxProcessor 已实施 使用 异步工作流程。

总之: :我认为f#异步工作流更简单,更清晰。但是,CCR和异步工作流程 一起MailboxProcessor 实施大致相同的编程模式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top