Здравствуйте, Аноним, Вы писали:
А>Событие наступает, а onCompleted на экран не выводится. Почему?
Потому что такова логика работы IObservable, который создается вызовом FromEventPattern — по наступлению события кинуть OnNext.
OnCompleted и OnError никогда не произойдут, как и отписка от события, кстати. Если немного подумать, то это логично
А>Ведь это нарушает цепочку вызовов (нельзя сделать Aggregate и пр.). Как исправить?
Если нужно прервать цепочку по первому же событию, то Take(1) поможет:
var observable = Observable.FromEventPattern(h => MyEvent += h, h => MyEvent -= h).Take(1);