我从.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循环。我的理解不正确吗?或者是否已经生成了正方形序列,因此它通过它工作?(正方形列表已经在订阅时生成了?)
答案 0 :(得分:0)
发现这有点太复杂了 - Why isn't this code behaving asynchronous。
我想补充一点,那里提到的解决方案现已弃用。您将收到警告,要求您使用System.Reactive.PlatformServices程序集中的NewThreadScheduler.Default(而不是使用System.Reactive.Concurrency中的Scheduler.NewThread)