异步流,推模式(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上看到其变化轨迹,那么就应该使用 异步流