《C#并发编程经典实例》—— Rx基础

声明:本文是《C#并发编程经典实例》的样章,感谢图灵授权并发编程网站发布样章,禁止以任何形式转载此文。

LINQ 是 对 序 列 数 据 进 行 查 询 的 一 系 列 语 言 功 能。 内 置 的 LINQ to Objects( 基 于 IEnumerable<T>) 和 LINQ to Entities( 基 于 IQueryable<T>) 是 两 个 最 常 用 的 LINQ 提 供 者。另外还有很多提供者,并且大多数都采用相同的基本架构。查询是延后执行(lazily evaluated)的,只有在需要时才会从序列中获取数据。从概念上讲,这是一种拉取模式。 在查询过程中数据项是被逐个拉取出来的。

Reactive Extensions(Rx)把事件看作是依次到达的数据序列。因此,将 Rx 认作是 LINQ to events( 基 于 IObservable<T>) 也 是 可 以 的, 它 与 其 他 LINQ 提 供 者 的 主 要 区 别 在 于, Rx 采用“推送”模式。就是说,Rx 的查询规定了在事件到达时程序该如何响应。Rx 在 LINQ 的基础上构建,增加了一些功能强大的操作符,作为扩展方法。

本章介绍一些更常用的 Rx 操作。需要注意的是,所有的 LINQ 操作都可以在 Rx 中使用。 从概念上看,过滤(Where)、投影(Select)等简单操作,和其他 LINQ 提供者的操作是 一样的。本章不介绍那些常见的 LINQ 操作,而将重点放在 Rx 在 LINQ 基础上增加的新 功能,尤其是与时间有关的功能。

要使用 Rx,需要在应用中安装一个 NuGet 包 Rx-Main。支持 Reactive Extensions 的平台非 常丰富。

  1. 转换 .NET 事件
  2. 发通知给上下文
  3. 用窗口和缓冲对事件分组
  4. 用限流和抽样抑制事件流
  5. 超时

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《C#并发编程经典实例》—— Rx基础

郭蕾

并发编程网站长,InfoQ技术编辑。个人博客:http://guolei.us
FavoriteLoading添加本文到我的收藏
  • Trackback 关闭
  • 评论 (0)
  1. 暂无评论

您必须 登陆 后才能发表评论

return top