异步F#vs. CCR框架
-
04-10-2019 - |
题
阅读有关CCR的信息: http://www.infoq.com/news/2008/12/ccr 我的印象是它的作用与f#async块几乎完全相同吗?
您会产生端口。接收和端口。测试以便与“ Let!”相同。
它是否正确? CCR中是否有任何好处,您不会使用f#async获得?
解决方案
您提到的文章中的示例看起来真的很像 let!
来自异步工作流程。通常, yield return
C#中的关键字使得可以编码类似于f#计算表达式的模式(以一种怪异的方式,因为它旨在创建枚举者):
我认为CCR和F#异步工作流之间的关键区别在于,CCR还包括用于通信并发的库。例如,请参见 本文 - 它用 Port
类(您可以将消息发送到端口)和 Arbiter.Receive
, ,这是一个原始的,可让您等待来自 Port
.
在f#中,您可以使用 MailboxProcessor
用于实施相同的消息通信模式,但这不是F#异步工作流的内置部分 - MailboxProcessor
已实施 使用 异步工作流程。
总之: :我认为f#异步工作流更简单,更清晰。但是,CCR和异步工作流程 一起 和 MailboxProcessor
实施大致相同的编程模式。
不隶属于 StackOverflow