Based on reading this question: What's the difference between SubscribeOn and ObserveOn
ObserveOn sets where the code is in the Subscribe handler is is executed:
stream.Subscribe(_ => { // this code here });
The SubscribeOn method sets which thread the setup of the stream is done on.
I'm led to understand that if these aren't explicitly set, then the TaskPool is used.
Now my question is, lets say I do something like this:
Observable.Interval(new Timespan(0, 0, 1))
.Where(t => predicate(t))
.SelectMany(t => lots_of(t))
.ObserveOnDispatcher()
.Subscribe(t => some_action(t));
Where are the Where predicate and SelectMany lots_of being executed, given that some_action is being executed on the dispatcher?