ReactiveX
henreash
Think Differently.
展开
-
带序列超时提示的Observale
Observable.Timeout扩展提供了序列超时的实现,但不够灵活,超时后就异常导致订阅失效。自定义的Observable更加灵活。IDisposable customerTimeoutSubscriber; private void button10_Click(object sender, EventArgs e) { var cnt = 0; var observable = Observable.Creat...原创 2021-02-05 14:55:49 · 447 阅读 · 0 评论 -
rxnet samples
http://rxwiki.wikidot.com/101samples原创 2021-01-18 21:04:45 · 387 阅读 · 0 评论 -
Rx第四部分--并发
Rx是一个可查询异步动态数据的系统。为了高效的提供开发者需要的异步编程功能,需要一定级别的并发控制。我们需要具有为消费者并发地生成序列数据的能力。在本系列文章的最后一篇中,我们将研究运行数据查询时必须考虑的各种并发问题。将研究如何避免使用并发,以及如何正确的使用并发。将看到Rx提供的优异的抽象性,以声明的方式使用并发,并可进行单元测试。在我看来这两个特性足够作为引入Rx的理由。我们将研究并发序...翻译 2018-11-07 20:45:04 · 765 阅读 · 0 评论 -
Rx第三部分--深入序列
系列文章的第三部分将看一下Rx的除前面提到的简单代码外的其他特性。要构建高质量代码,通常需要处理错误、记录日志、特定场景下重试、释放资源、及在范例中剔除的其他现实问题。本文的目的是让你将Rx当成工具使用,而不仅是一个玩具。如果正确的使用Rx,将会发现代码中很多地方都得到了改善。不要拒绝Rx,就像对IEnumerable拒绝foreach语法、对IDisposable对象拒绝使用using。理解...翻译 2018-11-07 20:43:48 · 570 阅读 · 0 评论 -
Rx使用指南
这是一个编写Rx查询的快速指南列表。This is a list of quick guidelines intended to help you when writing Rx queries.记住返回序列就不应返回null。这适用于IEnumerable<T>和IObservable<T>序列。可返回一个空序列替代。Members that return a ...翻译 2018-11-03 22:45:21 · 1972 阅读 · 0 评论 -
Rx第六部分 测试
测试软件的根源在于调试和推演代码。由于过去的手工测试在很大程度上已经成熟,这些测试试图“破坏应用程序”,现代的质量保证标准需要实现自动化来帮助评估和防止错误。虽然测试专家团队很常见,但是越来越多的程序员期望通过自动化测试套件提供质量保证。到目前为止,我们已经涵盖了Rx的全部知识点,并且我们已经有足够的知识开始使用Rx !尽管如此,许多开发人员还是希望在编写代码前编写测试用例。测试可以用来证明代...翻译 2018-11-10 17:17:24 · 678 阅读 · 0 评论 -
Rx第五部分--附录
打破事件的神话(Dispelling event myths)本书的前几部分应该为您提供了坚实和广泛的Rx基础。我们将使用这些基础知识来学习Rx真正有趣的,复杂的部分。在此之前,我想先确认一下我们的观点是否一致,消除一些常见的误解。把这些错误的观念带进一个并行的世界,会让事情看起来既神奇又神秘。这通常会导致有问题的代码。The previous parts in this book sho...翻译 2018-11-10 17:01:24 · 500 阅读 · 0 评论 -
Rx第二部分 – 序列基础
想使用Rx编写代码,如何开始呢?我们学习了Rx的核心类型,也知道不应该自己实现IObserver<T>和IObservable<T>接口,而应该使用工厂方法,也不应该使用Subject类。假如已有一个可观察序列对象,如何获取其发送的数据项呢?我们需要理解如何创建一个可观察序列,如何获取发送的数据,并从中筛选需要的数据项。第二部分我们研究可观察序列的构造和查询。LINQ是...翻译 2018-11-05 21:01:02 · 569 阅读 · 0 评论 -
Single
C#版本下Single已经过时,推荐使用C#的async和await语法糖来替代。RxJava(及其派生出的RxGroovy、RxScala)开发了一个Observable变体叫做Single。Single与Observable类似,不同之处在于不再发送数据序列、不发送或发送无数个数据,而是发送一个数据或一个错误通知。因此,Single不再需要订阅到Observable上的三个函数(o...翻译 2018-10-27 19:07:43 · 681 阅读 · 0 评论 -
可观察序列(Observable)
在ReactiveX中观察者订阅到可观察序列(Observable)。当可观察序列(Observable)发送数据项或数据项序列时观察者得到触发。这种模式促进了并发操作,因为观察者等待发送数据项的过程中无需阻塞,而是为观察者创建一个哨兵,在可观察序列发送数据项时自动触发相应的行为。In ReactiveX an observer subscribes to an Observable. The...翻译 2018-10-21 20:47:51 · 1307 阅读 · 0 评论 -
Rx操作符
ReactiveX的各种语言实现都提供了一系列操作符。虽然各种实现版本有很多重叠的功能,但有些操作符仅在特定语言中实现。同样每种语言版本对操作符的命名类似于方法,在其他语言上下文中也基本一致。Each language-specific implementation of ReactiveX implements a set of operators. Although there is mu...翻译 2018-10-31 15:18:53 · 667 阅读 · 0 评论 -
Scheduler
如果要向相关的Observable操作符引入多线程,可给操作符(或特定Observable对象)指定Scheduler。有些ReactiveX Observable操作符具有带Scheduler参数的变体。指示操作符在特定的Scheduler上下文上执行。默认,Observable及其操作链将会执行其操作,并向观察者发送通知,这些都是在与订阅方法相同的线程上执行。SubscribeOn...翻译 2018-10-28 12:21:10 · 940 阅读 · 0 评论 -
Subject
Subject在Reactive X中可以看作是观察者和可观察序列的桥或代理。因为它本身就是一个观察者,可以订阅到一个或多个可观察序列,而同时也是一个可观察序列,可以向其观察者重复发送数据,也可以发送新数据。因为Subject订阅到可观察序列,可观察序列发送数据时将其触发(如果可观察序列是冷的,将等待订阅才会发送数据)。这样可以具有将热观察者序列转变为冷观察者序列的效果。A Subject...翻译 2018-10-28 11:13:02 · 531 阅读 · 0 评论