千家信息网

Rx.Net的核心知识点有哪些

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关Rx.Net的核心知识点有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。何为Reactive Extensions(R
千家信息网最后更新 2026年11月03日Rx.Net的核心知识点有哪些

这篇文章将为大家详细讲解有关Rx.Net的核心知识点有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

何为Reactive Extensions(Rx)

Rx是一个遵循函数式编程的类库,它引用观察者以及迭代器设计模式对可观察对象产生的数据进行异步消费。使用Rx,开发人员将使用LINQ运算符操作异步数据流,并使用调度程序参数化异步数据流中的并发性,简单地说,Rx = Observables + LINQ + Schedulers。

使用Rx需要Nuget安装System.Reactive Nuget包

Rx的使用场景

响应式UI

UI界面上,用户对一个绑定数据集合的控件进行关键字查询。常规的流程是我们必须在等待用户键盘按下指定的完成键(如回车)或鼠标点击查询按钮后程序才开始执行相应的查询处理。但假设需求变更:"用户希望在每输入一个关键字后就能及时将关键字相应的查询结果集绑定到控件" 如果面临这个需求,那你会如何实现呢? 你会少不了定义相应的全局状态字段,少不了相应的时间间隔刷新。我相信写出来的代码也会让你很烦恼。 其实你有更好的选择,那就是我们的主角Rx。

Rx 核心

Rx有两个核心接口 IObservable、IObserver

IObservable

先来看此接口的结构:

IObservable接口就提供一个Subscribe(订阅)方法,入参是一个观察者对象接口。
我们可以将IObservable称之为被观察者(可观察者),IObserver称之为观察者。

通过可接口签名可以看出被观察者需要输出T类型的对象。需要理解被观察者IObservable我们需要与现有的一些常规知识点做出比较,这里我们用IEnumerable比较。
我想我们都使用过Linq,操作过IEnumerable集合,IEnumerable集合有个明显的状态就是它所存储的元素是静态的。集合内的元素状态除非代码显示的新增或删除、修改,否则这个集合基本是静态(数据未变动)的。但是IObservable则不同,它的元素是根据被观察者提供的数据而变动的(不可预测的),就好比在UI上你无法预测用户的操作行为一样。

下面这个表格可以看出两者区别

IEnumerable

可方便的列举集合元素值

IObservable

可观察对象变动的值

IObserver

IObserver接口可以理解为消费被贯彻着提供数据的一个接口,它的三个方法决定了本次数据流的观察行为的走向。
通俗理解就是被观察者生成数据,观察者消费数据。

来看下IObserver的结构

  • OnNext 表示消费新数据

  • OnError 表示观察数据流出现异常

  • OnCompleted 表示明确关闭观察数据流

代码示例

下面代码定义了一个可观察的队列,该队列会提供给观察者三个int类型的入参 1、2、3 供观察者对象的OnNext方法消费。 MyConsoleObserver(观察者)在得到数据后打印出来。

通过示例代码我们得知了Rx.Net的数据流订阅、消费流程。

Subject

我们再来认识下Subject,Subject是一个IObservable,它以命令形式生成一个值,并将该值推送给观察者对象。我们看下Subject的结构。

看这继承关系,我们继续看SubjectBase里面有些啥~

哎呀,这个类真不得了啊,把IObserver和IObservable都给继承了。这不是可以自己提供数据自己进行订阅和消费了么....
我们来看看Subject是怎么玩的:

执行结果如下图:

需要注意的是订阅方法需要在数据生成前声明。

关于Rx.Net的核心知识点有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

观察 数据 观察者 接口 消费 对象 数据流 知识 代码 核心 元素 方法 用户 查询 订阅 知识点 关键 关键字 就是 状态 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技赋能下的互联网金融 科技互联网公司装修 合肥互联网科技公司 天津摩尔互联网科技 互联网科技小额贷款 互联网科技网站 大白互联网科技 四个字互联网科技公司取名 广西拼得多互联网科技有限公司 汉立互联网科技有限公司联系电话 上海电发互联网科技有限公司 随着互联网科技发展 银川新华互联网科技职业技术培训学校图片 常德市电业局互联网科技部 哈尔滨屹滨互联网科技有限公司 国大互联网教育科技有限公司薪资 江苏苏星互联网科技有限公司 广州富喜互联网络科技 保山互联网科技靠谱吗 承德科技产业互联网平台 互联网科技名片 广州为想互联网科技有限公司 疫情对互联网科技公司影响 平安科技 互联网 盛创互联网科技有限公司 开启互联网科技时代小说 千方科技属于互联网企业吗 互联网领先科技宣传片 福仕德教育科技互联网 宁波允成互联网科技有限公司
0