我试图弄清楚如何使用 Reactive Extensions,为此我编写了这个简单的示例:
namespace ReactiveTest
{
class Program
{
static void Main(string[] args)
{
var o = Observable.Generate(0, i => i < 10, x => AddAndWait(x), i => i * i);
Console.WriteLine("Before");
o.Subscribe(x => Console.WriteLine(x));
Console.WriteLine("After");
Console.ReadLine();
}
static int AddAndWait(int i)
{
Thread.Sleep(1000);
return i + 1;
}
}
}
看完这个视频后,我希望看到After
打印出来的东西,Before
但我得到的是数字的正方形,只有在完成之后我才会收到After
消息。
我知道我正在阻塞线程,但这不是这种反应性东西的重点,能够超越这些限制并继续在你的主线程中吗?