我在我的Scala项目中使用RxJava,并且我需要在一个单独的线程中执行我的Observable
。我知道为了实现这一点,我需要对它调用observeOn
方法,并将rx.lang.scala.Scheduler
的一个实例作为参数进行传递。
但是,如何创建该实例呢?我没有找到任何明显的方法来实例化rx.lang.scala.Scheduler
特征。例如,我有这样的代码:
Observable.from(List(1,2,3)).observeOn(scheduler)
有人能提供一个可以工作的scheduler
变量的例子吗?
发布于 2014-06-05 04:43:13
特征是不可实例化的。
您需要使用API documentation中“已知子类”下列出的特征的一个子类。
发布于 2018-07-30 01:52:38
所有调度程序都在包中
import rx.lang.scala.schedulers._
对于阻塞IO操作,请使用IO调度程序
Observable.from(List(1,2,3)).observeOn(IOScheduler())
对于计算工作,使用计算调度器
Observable.from(List(1,2,3)).observeOn(ComputationScheduler())
在当前线程上执行
Observable.from(List(1,2,3)).observeOn(ImmediateScheduler())
在新线程上执行
Observable.from(List(1,2,3)).observeOn(NewThreadScheduler())
对要在当前线程之后执行的当前线程上的工作进行排队
Observable.from(List(1,2,3)).observeOn(TrampolineScheduler())
如果您想使用您自己的自定义线程池
val threadPoolExecutor = Executors.newFixedThreadPool(2)
val executionContext = ExecutionContext.fromExecutor(threadPoolExecutor)
val customScheduler = ExecutionContextScheduler(executionContext)
Observable.from(List(1,2,3)).observeOn(customScheduler)
https://stackoverflow.com/questions/24046554
复制相似问题