请看下面的代码:使用ObserveOn观察物的必要性?
var obs = Observable.Start(() => LongRunningMethodToRetrieveData());
obs.Subscribe(x => MethodThatMustBeOnUIThread(x));
如果我敢肯定,这2行代码都在UI线程上执行,是否有必要先调用ObserveOn(SynchronizationContext.Current)
?或者同样,我是否需要检查MethodThatMustBeOnUIThread
内部的InvokeRequired
?
基本上,我用这两行代码保证'OnNext'会在创建订阅的线程上被调用吗?
谢谢。
编辑:好吧,我试着在调试器和'MethodThatMustBeOnUIThread'确实是从后台线程调用。为什么是这样?我现在的假设是观察在默认情况下在运行异步方法的线程上发生。