Я изучаю Rx и прорабатываю некоторую семантику.В качестве эксперимента я строю наблюдаемый таймер, который вызывает OnError на десятом тике.До сих пор у меня есть 2 метода, которые, я считаю, демонстрируют идентичное поведение:
var timer = Observable.Interval(TimeSpan.FromMilliseconds(200));
// method 1
Observable.Create<long>(
x => timer.Subscribe(tick => {
if (tick == 10)
{
x.OnError(new Exception());
}
x.OnNext(tick);
}));
// method 2
timer.Select(x => {
if (x == 10)
{
throw new Exception();
}
return x;
});
Правильно ли я считаю, что оба эти метода будут вести себя одинаково?Если нет, в чем различия?