我有以下代码:
var timer = Observable.Timer(TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(10));
timer.Subscribe(Console.WriteLine, ()=>Console.WriteLine("Completed"));
产生从0到...的整数
但问题是为什么整数? 是否有可能在0.1,0.2,0.3中产生双倍而无需额外计算?
答案 0 :(得分:3)
Rx Timer将生成增量长值,您可以使用Select语句进一步转换为其他值。 在您的情况下,如果您想获得双值列表,您可以简单地更改您的计时器声明:
var timer = Observable.Timer(TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(10)).Select(i => i / 10.0);
timer.Subscribe(Console.WriteLine, ()=>Console.WriteLine("Completed"));
我认为如果不添加select运算符就不能这样做,因为它需要重写Timer生成器函数,这应该不会那么困难,但可能会很棘手。