Rx提供了一种新的组织和协调异步事件的方式,极大的简化了代码的编写。Rx最显著的特性是使用可观察集合(Observable Collection)来达到集成异步(composing asynchronous)和基于事件(event-based)的编程的效果。

我的理解是它是一种编程模式的抽象,http://latentflip.com/imperative-vs-declarative/,协同Linq的思想可以很好的工作,使代码更为整洁。

Obervable Collection是Rx的核心,你甚至可以把事件看成是一种流。它实现了Observer模式的一种变种

在Rx中,IObservable相当于经典模式中的Subject,IObserver相当于Observer

通过使用Rx既能够控制Observable的线程控制,也能够控制Observer的callback的线程控制

static void Main(string[] args)
{
Console.WriteLine("Start: Thread #" +Thread.CurrentThread.ManagedThreadId);
var query = from number in Enumerable.Range(, )
select StringWait(number.ToString());
//耗时操作让Observable在Worker线程中完成
var observableQuery = query.ToObservable(ThreadPoolScheduler.Instance);
//指定Observer在UI线程中更新UI observableQuery.ObserveOn(Scheduler.Dispatcher).Subscribe(ProcessNumber);
} private static string StringWait(string str)
{
Thread.Sleep();
return str;
} private static void ProcessNumber(string number)
{
Console.WriteLine("{0} Thread {1}", number, Thread.CurrentThread.ManagedThreadId);
}

上述代码只是个实例,然而可以被运用到GUI APP中,比如后台操作或者耗时操作可以通过Worker线程完成,更新UI的操作直接让Observer在UI Thread中完成,编程模式得到简化。

最新文章

  1. WPF 主题切换(Z)
  2. MySQL密码忘记,怎么办?
  3. Xshell连接Linux下Oracle无法回退的解决办法
  4. PL/0编译器(java version) - MainFrame.java
  5. C#:.net/方法/字符串/数组
  6. android学习ProgressBar的简单使用
  7. 【一天一道LeetCode】#225. Implement Stack using Queues
  8. SQL语句——exists和in区别
  9. CRM rbac 组件的应用
  10. WordCount系统分析与设计作业
  11. 应用通信-方案一:RestTemplate
  12. 如何在ScrollView滑动的瞬间禁用拖拽手势
  13. UIImagePickerController按钮的中文问题
  14. python练习笔记——完全数(1000以内的)
  15. List 集合remove问题
  16. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛-等式(求$N^2$的因子个数)
  17. Linux内核分析 - 网络[十四]:IP选项
  18. maven 的构建异常 Could not find artifact ... and 'parent.relativePath'
  19. ARDUINO解析GPS数据,读取出来GPRMC帧数据
  20. docker 搭建linux samba

热门文章

  1. ReactJS入门二
  2. OUC_OptKernel_oshixiaoxiliu_好题推荐
  3. 数据库文档生成工具——word2chm,SqlSpec
  4. 它们的定义ListView,实现Item除去滑动和滑出菜单效果
  5. SQL Profile (总结4)--使用演示示例
  6. Apache conf文件配置个人总结
  7. crawler_爬虫_反爬虫策略
  8. 算法题C#
  9. C++学习笔记32 断言函数
  10. 【百度地图API】如何快速创建带有标注的地图?——快速创建地图工具+如何标注商家