首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异步F#与CCR框架

异步F#与CCR框架
EN

Stack Overflow用户
提问于 2010-05-07 23:30:40
回答 1查看 640关注 0票数 2

在阅读了关于CCR:http://www.infoq.com/news/2008/12/CCR的文章后,我得到的印象是它与F#异步块几乎完全相同?

为了完成与"let!“相同的操作,您需要生成port.Receive和port.Test。

这是正确的吗?在CCR中有没有F# async无法获得的好处?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-07 23:59:53

您在文章中提到的示例看起来真的很像异步工作流中的let!。通常,C#中的yield return关键字可以对类似于F#计算表达式的模式进行编码(以一种奇怪的方式,因为它是为创建枚举数而设计的):

  • 这也被AsyncEnumerator使用,它(IMHO)比CCR更简单,而且更接近F#异步工作流
  • 我写的an article更详细地解释了这种相似性。

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

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

总结:我认为F#异步工作流更简单,概念更清晰。但是,CCR和异步工作流以及MailboxProcessor实现了大致相同的编程模式。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2789717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档