.NET并发编程-Reactive Extensions反应式扩展

1、反应式编程
它是一种编程范式,将事件作为数据流异步监听和处理。与编辑Excel表格类似,单个元素的值是由其他单元格的值决定的公式。一旦其他单元格的值发生变化,该公式的单个单元格将相应更新。

如果操作是以声明方式描述的,那么它就是函数式反应式编程。

反应式编程的优点是描述了一种简单易维护的方法来处理异步、无竞争的计算和IO,从而增加了多核、多CPU硬件上计算资源的使用。事件的控制从“请求”变成了“等待”。在大数据的实时流处理环境中,采用了反应式编程,如推文系统处理、日志系统收集等。

2、.NET中的工具

中有基于委托的模型事件。. NET。订户的事件处理程序注册一系列事件,并在被调用时触发它们。Button的Click事件常用于桌面应用,绑定事件是用+=。所以传统的事件是处理GUI用户界面的交互。这种命令式编程很难处理复杂事件的排列,容易造成内存泄漏。

您可以使用F#中的| >管道运算符来连接多个事件。如果不熟悉F#,就不解释了。主要看C# if处理。

3、Reactive Extensions(Rx)反应式扩展

LINQ是一系列查询顺序数据的词、词和函数。内置的LINQ到对象(基于IEnumerable)和LINQ到实体(基于IQueryable)是两个最常用的LINQ捐赠者。还有很多其他的提供商,大部分都采用相同的基本架构。查询被延迟,只有在需要时才会从序列中获取数据。从概念上讲,这是一种拉模式。在查询过程中,数据项被一个接一个地拉出。

反应式扩展将事件视为依次到达的数据序列。因此,也可以将Rx视为事件的LINQ(基于IObservable),这与其他LINQ提供商的不同之处在于Rx采用推送模式。也就是说,Rx的查询指定了当事件到达时程序应该如何响应。Rx是在LINQ的基础上构建的,加入了一些强大的算子作为扩展方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值