【发布时间】:2010-02-19 19:47:48
【问题描述】:
我正在使用 .Net3.5SP1 中的 Rx 并尝试使用 101 Rx Samples。我正在尝试第一个示例(开始 - 异步运行代码),但它似乎并没有真正异步运行。例如,
Console.WriteLine("[Creating]");
var o = Observable.Start(() =>
{
Console.WriteLine("Calculating...");
Thread.Sleep(3000);
Console.WriteLine("Done.");
});
Console.WriteLine("[Created]");
Console.WriteLine("[Starting]");
o.First(); // subscribe and wait for completion of background operation
Console.WriteLine("[Started]");
输出
[Creating]
[Created]
[Starting]
Calculating...
<...3 Second Wait...>
Done.
[Started]
对此有解释吗?难道我做错了什么?这是预期的行为吗?
更新
我以为它会说
[Creating]
[Created]
[Starting]
Calculating...
[Started]
<...3 Second Wait...>
Done.
但是当所谓的异步调用发生时,主线程被阻塞了。
【问题讨论】:
标签: .net system.reactive reactive-programming