Am从Reactive Extensions for.NET开始,正在观看Bart De Smet的DevCamp会话视频。我尝试了下面的片段,它应该是异步的->程序流应该在订阅后继续,但我没有看到这种情况发生。这是代码片段-
static void Main(string[] args)
{
IObservable<int> o = Observable.Generate(0, i => i < 100, i => i + 1, i => i * i);
o.Subscribe(x => { Console.WriteLine(x);});
for(int k = 0; k < 10; k++)
Console.Write(k);
Console.ReadKey();
}
这总是先打印i的正方形,然后进行for循环。我的理解有误吗?或者是已经生成了正方形序列,因此它通过它工作?(正方形列表在订阅时已经生成?)
发现这是一个有点太迟的重复-为什么不是';t这段代码的行为是异步的。
我只想补充一点,这里提到的解决方案现在已经被否决了。您将收到一条警告,要求您使用System.Reactive.PlatformServices程序集中的NewThreadScheduler.Default(而不是使用System.Reaction.Currency中的Scheduler.NewThread)