Rx(Reactive Extensions)的由来

既然我们已经介绍了响应式编程,现在是时候了解我们的明星了:响应式扩展,通常简称为Rx。微软开发了Reactive扩展库,使其易于处理事件流和数据流。在某种程度上,时变值本身就是一个事件流;每个值更改都是一种类型的事件它会更新依赖于它的值。

Rx通过将事件流抽象为可观察对象来简化事件流的处理序列,这也是Rx表示时变值的方式。可观测的手段作为用户,您可以观察到序列所携带的值,以及序列的含义所携带的东西是有命令的。Rx是由Erik Meijer和Brian Beckman设计的,其灵感来自函数式编程风格。在Rx中,一个流由可观察对象表示,这些可观察对象可以从。net事件、任务或集合中创建。或者可以自己从另一个来源创建。使用Rx,您可以使用LINQ操作符查询可观察对象,并使用调度程序控制并发性这就是为什么是Rx通常在Rx中定义。. NET源代码为Rx = Observables + LINQ + schedulers的Rx的层。如图1.4所示。
在这里插入图片描述
图1.4 Rx层。中间的是关键的接口,表示事件流,下面是调度程序控制并发性的流处理。最重要的是强者操作符库允许您创建事件处理LINQ风格的流水线。

让我们看看Rx起源的简短历史。我认为,要完全控制某件事(尤其是技术),你应该了解它的历史和幕后的细节。让我们从Rx标志开始,其中有一条电鳗,如图所示图1.5;这条鳗鱼是微软Live实验室的Volta项目标志。
在这里插入图片描述
Volta项目是一个用于创建多层的实验性开发人员工具集云的应用程序,在云这个术语正式定义之前。利用沃尔塔,您可以指定应用程序的哪一部分需要在云中运行(服务器)和客户端(桌面、JavaScript或Silverlight),以及Volta编译器会为您做艰苦的工作。很快,差距就显现出来了在将从服务器产生的事件传输到客户端时。因为。net事件不是一等公民,它们不能被序列化并推送到客户端,因此形成了可观察对象和观察者对(尽管当时还没有这样称呼)。

Rx并不是Volta项目的唯一技术。JavaScript编译器的中间语言(IL)也被发明出来,它是微软的起源
打印稿。制作《Volta》的团队也是创造《Rx》的团队。

自2010年发布以来,Rx一直是一个成功的故事,被许多人采用公司。它在.NET之外的其他社区也取得了成功,而且很快就成功了被移植到其他语言和技术。例如,Netflix就使用Rx广泛地在其服务层,并负责RxJava端口,微软还在内部使用Rx来运行cortana——托管的智能个人助理。在每个Windows Phone设备中;当你创建一个事件时,一个可观察对象是在后台创建的。

在撰写本文时,Rx在10多种语言中得到支持,包括JavaScript, c++, Python和Swift。响应式扩展现在是一个开放的项目。您可以在https://reactivex.io/找到有关它们的信息以及文档和新闻,.NET的响应式扩展托管在GitHub,网址是https://github.com/Reactive-Extensions/Rx.NET。现在我们已经了解了一些历史,并得以讲述它,让我们开始探索Rx的内部吧。

——未完待续

译者:重庆教主 20240513

网站:WPF中文网 wpfsoft.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/621464.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电流反馈型运放设计要点总结

目录 前言 基本架构 CFB和VFB运算放大器的差异 总结:电流反馈(CFB)与电压反馈(VFB) 前言 最近一个项目用到THS3491,发生了震荡,这是一个电流型反馈运放,借此机会,温故一下,电流运放的相关设计知识 基本架…

JAVA远程调试步骤

1.生成参数 2.复制到启动命令中 3.打jar包运行到远程服务器中 4.开始远程调试

【数据结构与算法 刷题系列】环形链表的约瑟夫问题

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:数据结构与算法刷题系列(C语言) 目录 一、问题描述 二、解题思路详解 解题思路 解题步骤 三、C语言代码…

NSSCTF | [LitCTF 2023]我Flag呢?

这道题没啥好说的,题目标签为源码泄露,我们直接CtrlU查看网页源码就能在最后找到flag 本题完

Linux---windows 机器和远端的 Linux 机器如何通过 XShell 传输文件

一、关于rzsz 这个工具用于 windows 机器和远端的 Linux 机器通过 Xshell 传输文件. 二、下载rzsz软件 用root输入命令: sudo yum install -y lrzsz下载完成: 三、如何传输 有图形化界面 1、从Windows机器传输给远端Linux机器 ① 直接拖拽 直接将…

从编辑器角度来理解定义和声明

报错,在函数里面(包括int main函数)extern声明会和定义冲突 下面这种写法就很ok 静态变量的反汇编 #include<iostream> using namespace std; extern int c; int ma

Mysql与Java连接----JDBC

前言: 当将Java与MySQL数据库连接时&#xff0c;JDBC&#xff08;Java Database Connectivity&#xff09;是一种重要的技术。JDBC允许Java应用程序通过标准的数据库访问方式与不同的关系型数据库进行通信&#xff0c;其中包括MySQL。通过使用JDBC&#xff0c;Java开发人员可以…

ICode国际青少年编程竞赛- Python-5级训练场-多参数函数

ICode国际青少年编程竞赛- Python-5级训练场-多参数函数 1、 def go(a, b):Spaceship.step(2)Dev.step(a)Spaceship.step(b)Dev.turnRight()Dev.step(b)Dev.turnLeft()Dev.step(-a) Dev.turnLeft() Dev.step(3) Dev.step(-3) go(3, 2) go(6, 1) go(5, 2) go(4, 3)2、 def go(…

processing完整教程

概述&#xff1a;processing在我眼里就是libgdx的高度封装&#xff0c;如果各位会libgdx&#xff0c;学processing应该可以说是无师自通&#xff0c;当然processing是java语言那边的。 processing是什么&#xff1f; 官网是这样解释的&#xff1a;Processing 是一本灵活的软件…

快速判断出485从站设备是否支持MODBUS RTU无线通讯

对于变频器和仪表设备&#xff0c;都支持485串口通讯&#xff0c;那么怎么判断从站设备支持那种协议呢&#xff1f;通常分为两种方式去判断&#xff1a;1.从设备参数参看2.从设备通讯报文查看。本次文章以以台达MH300系列变频器为例。 1.从设备通讯参数查看 使用设备之前一定…

C语言 文件操作

目录 1. 什么是文件&#xff1f;2. 二进制文件和文本文件3. 文件的打开和关闭3.1 流和标准流3.1.1 流3.1.2 标准流 3.2 文件指针3.3 打开、关闭文件3.3.1 fopen - 打开文件3.3.2 fclose - 关闭文件 4. 文件的顺序读写4.1 fgetc - 从文件流获取一个字符4.2 fputc - 将一个字符写…

金融业开源软件应用 评估规范

金融业开源软件应用 评估规范 1 范围 本文件规定了金融机构在应用开源软件时的评估要求&#xff0c;对开源软件的引入、维护和退出提出了实现 要求、评估方法和判定准则。 本文件适用于金融机构对应用的开源软件进行评估。 2 规范性引用文件 下列文件中的内容通过文中的规范…

智能制造数字工厂未来三年规划方案(80页ppt下载)

一、资料介绍 智能制造数字工厂未来三年规划方案是一份全面而深入的战略性文件&#xff0c;旨在指导我们公司在未来三年内实现智能制造领域的跨越式发展。这份80页的PPT资料&#xff0c;以“智能制造、智能制造系统、数字化工厂、数字孪生工厂、智能工厂和数字化车间”为核心关…

Amesim基础篇-热仿真常用模型库-Electrical Basics/Electric Storage

前言 在动力电池仿真中中我们不免会用到该元件库中的模型&#xff0c;该库中包含基本的电路元件与电池模型。具体的相关模型介绍如下&#xff1a; 1 电压源、电流源、功率源、接地 如图&#xff0c;分别为电压源、电流源和功率源&#xff0c;其中功率源在仿真中经常用到&…

《intel开发手册卷3》读书笔记1

1、CPU工作模式 1&#xff09;实模式&#xff1a;8086的寄存器只有16位&#xff0c;我们也习惯于称8086的工作模式为16位模式。后续的CPU为了保持兼容性&#xff0c;在芯片上了电以后&#xff0c;还必须运行于16位模式之下。这种模式还有个正式的名字叫做实模式。在实模式下&am…

Stable Diffusion WebUI 绘画

配置环境介绍​ 目前平台集成了 Stable Diffusion WebUI 的官方镜像&#xff0c;该镜像中整合如下资源&#xff1a; GpuMall智算云 | 省钱、好用、弹性。租GPU就上GpuMall,面向AI开发者的GPU云平台 Stable Diffusion WebUI版本&#xff1a;v1.7.0 Python版本&#xff1a;3.1…

vue2 报错 component name“Index“should always be multi-word

报错原因&#xff1a; 组件名称应该为俩个或俩个以上单词组成的&#xff0c;并且还要是大驼峰命名&#xff0c;例如&#xff1a;MyIndex&#xff0c;MyLogin等 解决方法一&#xff1a; 将组件名称改为俩个或俩个以上单词组成的名称&#xff0c;且为大驼峰命名&#xff0c;例如…

半小时搞懂STM32面经知识——ADC

1.ADC 1.1 ADC是什么&#xff1f; 将连续变量的模拟信号转换为离散变量的数字信号 1.2 ADC的位数&#xff1f;&#xff08;采样精度&#xff09; F1和F4都具有3个ADC&#xff0c;F1可提供21个输入通道&#xff0c;F4可以提供24个输入通道。 F4的ADC支持12位&#xff0c;10位…

2024最新软件测试面试题及答案【史上最全】

以下是软件测试相关的面试题及答案&#xff0c;欢迎大家参考! 1、你的测试职业发展是什么? 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&…

SparkSQL概述

1.1. SparkSQL介绍 SparkSQL&#xff0c;就是Spark生态体系中的构建在SparkCore基础之上的一个基于SQL的计算模块。SparkSQL的前身不叫SparkSQL&#xff0c;而是叫做Shark。最开始的时候底层代码优化、SQL的解析、执行引擎等等完全基于Hive&#xff0c;总是Shark的执行速度要比…