我正在学习响应式扩展,这些天我遇到了这种情况,代码在这里:
    class Program
{
    private static void Main(string[] args)
    {
        var ls = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 }.ToObservable();
        ls.Select(m => new
            {
                t = Observable.Start(() =>
                    {
                        Thread.Sleep(100);
                        return new Random().Next(3, 20);
                    }),
                i = m
            }).Subscribe(item => item.t.Subscribe(Console.WriteLine));
        Task.WaitAll();
        Console.WriteLine("all done");
        Console.ReadKey();
    }
}
它表明 Observable 中有一个 IObservable,我想在所有过程完成后打印“all done”,但这不起作用。程序启动后“全部完成”打印得非常快,不再等待,在我这里的情况下,我应该怎么做才能获得真正的WaitAll?