bao*_*ozi 1 c# system.reactive
为什么下面的代码没有输出?
它是一个控制台应用程序,用于生成一些随机值(我正在学习反应式扩展)。
using System.Reactive.Linq;
static void Main(string[] args)
{
var rand = new Random();
Observable.Generate(
5.0,
i => i > 0,
i => i + rand.NextDouble() - 0.5,
i => i,
i => TimeSpan.FromSeconds(0.1)
).Subscribe(Console.WriteLine);
}
Run Code Online (Sandbox Code Playgroud)
AnObservable表示异步数据流。因为您将时间跨度传递给Generate,所以数字生成是在后台线程中发生的。
当你的Main函数退出时,主线程也退出。当主线程退出时,后台线程将被杀死。
由于您的Main函数将在 0.1 秒过去之前退出,因此您的生成器没有时间生成任何内容。尝试添加Console.ReadLine();到函数的末尾Main,这样后台线程就不会被终止,直到您按下某个键。