首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MainThread上执行Schedulers.computation()

在MainThread上执行Schedulers.computation()
EN

Stack Overflow用户
提问于 2016-06-03 21:07:40
回答 2查看 135关注 0票数 0

如何在后台线程中执行此代码?

代码语言:javascript
复制
.subscribeOn(Schedulers.computation())

onNext()
{
     touchEverythingInTheUiThreadFromBackgroundThread();
}
EN

回答 2

Stack Overflow用户

发布于 2016-06-05 05:31:14

如果您希望确保您的.doOnNext()在指定的调度程序上执行,则将您的.subscribeOn()更改为.observeOn().observeOn()直观地决定了之后的所有事情都使用哪个调度器。

.subscribeOn()仅影响用于运行可观察对象创建的onSubscribe()方法的调度器。以后会发生什么很大程度上取决于你订阅的内容,或者正如@akarnokd所说的:事件的来源是什么。假设项目将在.subscribeOn()中指定的调度器上发出是不安全的。实际上,至少有几个例子表明这些假设不成立。

票数 1
EN

Stack Overflow用户

发布于 2016-06-03 21:36:58

使用

代码语言:javascript
复制
    Observable.fromCallable(() -> Thread.currentThread().getName())
            .subscribeOn(Schedulers.computation())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(name -> Timber.d("Worker thread: %s, Handle thread: %s", name, Thread.currentThread().getName()));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37615253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档