私はリアクティブ拡張機能を学習しています。最近、この状況に遭遇しました。コードは次のとおりです。
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 があることを示しており、すべてのプロセスが完了した後に「すべて完了」と出力したいのですが、うまくいきませんでした。プログラムが開始するとすぐに「すべて完了」と表示され、もう待つ必要はありません。私の状況では、 REAL WaitAllを取得するにはどうすればよいですか?