异常流,推模式(Rx) 拉模式(Ix) 有点乱 来捋一捋

Posted projectdd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常流,推模式(Rx) 拉模式(Ix) 有点乱 来捋一捋相关的知识,希望对你有一定的参考价值。

把集合的产生分成这几类

1,通过循环产生的

2,通过时间累积一些行为产生的

暂时先分成这两类,

异步流,和同步流的区别 关键在这里

同步当然不存在流,就是集合构造吧,异步构造之间有一些关键点

同步是这样

void m1(){

  var sum=0;

  for( int i=0; i<10;i++){

  sum+=i;

  }

  Console.WriteLine(sum);

}

 

最后屏幕上打印了sum的值

要想看到sum每一步的变化就在for里写一个Console.Wri~方法打印sum就行了

但是如果是向winform 或 web 的网页上呈现sum的变化怎么做呢?

void m2(){

  var sum=0;

  for( int i=0; i<10;i++){

  sum+=i;

       //ui.textBox.Text=sum.ToString();   //类似这样行吗?

  }

  Console.WriteLine(sum);

}

应该不行 这是为什么?

因为在m2方法被调用一次以后 ui.TextBox.Text这个不论被赋值多少次,也是一一个非常短的时间内就搞完了,而且就算时间花得长也不会看到sum的变化轨迹,

因为整个ui渲染的提交估计并不是和那个m2方法的循环一致匹配的,而是以调用相匹配,调用一次就呈现渲染一次,所以客户端看到的效果只是最终的sum的值而已

如果我们要在一次m1调用后在ui上看到其变化轨迹,那么就应该使用 异步流

以上是关于异常流,推模式(Rx) 拉模式(Ix) 有点乱 来捋一捋的主要内容,如果未能解决你的问题,请参考以下文章

【RabbitMQ-4】拉模式和推模式

RocketMQ(11)——消费者拉模式和推模式

消息队列之推还是拉,RocketMQ 和 Kafka是如何做的?

RocketMQ(11)——消费者拉模式和推模式

RocketMQ(11)——消费者拉模式和推模式

365消息队列之推还是拉,RocketMQ 和 Kafka 是如何做的?