Как объединить два Observable, чтобы результат завершился, когда любой из Observable завершится?

У меня есть этот код:

var s1 = new Subject<Unit>();
var s2 = new Subject<Unit>();
var ss = s1.Merge(s2).Finally(() => Console.WriteLine("Finished!"));

ss.Subscribe(_ => Console.WriteLine("Next"));

s1.OnNext(new Unit());
s2.OnNext(new Unit());
s1.OnCompleted(); // I wish ss finished here.
s2.OnCompleted(); // Yet it does so here. =(

Я решил свою проблему с помощью OnError (new OperationCanceledException ()), но мне бы хотелось получить лучшее решение (должно быть быть комбинатором, верно?).

6
задан Pablo Montilla 4 February 2011 в 12:22
поделиться