Observables Generator中的异步行为?

时间:2014-09-16 05:58:36

标签: c# asynchronous system.reactive

我从.NET的Reactive Extensions开始,正在观看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循环。我的理解不正确吗?或者是否已经生成了正方形序列,因此它通过它工作?(正方形列表已经在订阅时生成了?)

1 个答案:

答案 0 :(得分:0)

发现这有点太复杂了 - Why isn't this code behaving asynchronous

我想补充一点,那里提到的解决方案现已弃用。您将收到警告,要求您使用System.Reactive.PlatformServices程序集中的NewThreadScheduler.Default(而不是使用System.Reactive.Concurrency中的Scheduler.NewThread)