如何使用Rx生成数字列表?Net,比如0-100,其中每个数字都是随机生成的?
编辑:似乎可以
public void NonBlocking_event_driven()
{
var random = new Random();
var ob = Observable.Create<int>(
observer =>
{
timer.Interval = 1000;
timer.Elapsed += (s, e) => observer.OnNext(random.Next(0, 3));
timer.Elapsed += OnTimerElapsed;
timer.Start();
return Disposable.Empty;
});
var subscription = ob.Subscribe(UserAction);
Console.ReadLine();
subscription.Dispose();
}
private void OnTimerElapsed(object sender, ElapsedEventArgs e)
{
var random = new Random();
timer.Interval = random.Next(1, 10)*1000;
Console.WriteLine(e.SignalTime);
}
这里有一个操作符,你可以使用Generate:
var source = Observable.Generate(
0,
x => x < 100,
x => x + 1,
_ => random.Next(0, 3),
_ => TimeSpan.FromMilliseconds(random.Next(1, 10)* 1000));
source.Subscribe(x => Console.WriteLine(x));