【发布时间】:2017-04-13 11:51:23
【问题描述】:
我正在尝试向这个 Observable 序列添加一个时间间隔(即在特定时间跨度产生一个整数序列),但它似乎不起作用。当我删除时间时,它的工作时间。我是否错误地应用了计时器?
var timer = Observable.Interval(TimeSpan.FromSeconds(2)).Take(4);
var nums = Observable.Range(1,1200).Where(a => a % 2 == 0);
var sourcenumbs = timer.SelectMany(nums);
var results = sourcenumbs.Subscribe(
x => Console.WriteLine("OnNext: {0}",x),
ex => Console.WriteLine("OnError: {0}",ex.Message),
() => Console.WriteLine("OnComplete")
);
此代码不显示任何输出,是否在到达订阅前得到 Dispose?
但是,如果我有一个带有计时器的 forloop,那么它就可以工作。为什么?
for (int i = 0; i < 10; i++)
{
Thread.Sleep(TimeSpan.FromSeconds(0.9));
}
【问题讨论】:
-
“向这个 Observable 序列添加时间间隔”是什么意思。您期望的输出是什么? for 循环与可观察序列有什么关系?
-
@Euphoric 我想要每 2 秒从 1 到 1200 的偶数,没有
Observable.Interval它工作正常,但我想给它添加一个计时器。
标签: c# system.reactive