ObserveOn和SubscribeOn-完成工作的地方

基于阅读此问题:SubscribeOn和ObserveOn有什么区别


ObserveOn设置Subscribe执行处理程序中代码的位置:


stream.Subscribe(_ => { // this code here });


该SubscribeOn方法设置在哪个线程上完成流的设置。


我被领会到,如果未明确设置这些参数,则使用TaskPool。


现在我的问题是,让我说这样的事情:


Observable.Interval(new Timespan(0, 0, 1)).Where(t => predicate(t)).SelectMany(t => lots_of(t)).ObserveOnDispatcher().Subscribe(t => some_action(t));


鉴于在分配器上执行,Where predicate并且SelectMany lots_of在哪里some_action执行?


SMILET
浏览 1288回答 3
3回答

倚天杖

我经常会误认为.SubcribeOn用来设置.Subscribe执行内部代码的线程。但是要记住,只是认为发布和订阅必须像阴阳配对。设置Subscribe's code执行位置ObserveOn。设置Observable's code执行位置SubscribeOn。或在总结口头禅:where-what,Subscribe-Observe,Observe-Subscribe。
打开App,查看更多内容
随时随地看视频慕课网APP