加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

RxJava在Scheduler.io()线程中不起作用

发布时间:2020-12-15 04:48:03 所属栏目:Java 来源:网络整理
导读:问题在于:我有Observable和Subscriber.我尝试在.io()线程中启动Observable,因为它适用于文件和zip存档器(我不会显示代码 – 太大),但是Observable什么都不做!: ObservableDouble creatingObservable = getCreatingObservable(image);SubscriberDouble cre
问题在于:我有Observable和Subscriber.我尝试在.io()线程中启动Observable,因为它适用于文件和zip存档器(我不会显示代码 – 太大),但是Observable什么都不做!:

Observable<Double> creatingObservable = getCreatingObservable(image);
Subscriber<Double> creatingSubscriber = getCreatingSubscriber();

creatingObservable
        .subscribeOn(Schedulers.io())
        .subscribe(creatingSubscriber);

如果我在没有subscribeOn()的情况下启动代码 – 所有工作.有什么问题以及如何解决它

附: System.out.println()也不起作用.问题有调度程序的所有线程.

解决方法

似乎问题是在createObservable之前终止的主线程可以发出任何值.

简单的解决方案:使主线程等待足够长的时间以使creationObservable能够发出/完成.

Observable<Double> creatingObservable = getCreatingObservable(image);
Subscriber<Double> creatingSubscriber = getCreatingSubscriber();

creatingObservable
        .subscribeOn(Schedulers.io())
        .subscribe(creatingSubscriber);

Thread.sleep(5000); //to wait 5 seconds while creatingObservable is running on IO thread

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读