「observeOn」メソッドの「スケジューラ」を作成するにはどうすればよいですか?

StackOverflow https://stackoverflow.com//questions/24046554

質問

Scala プロジェクトで RxJava を使用しているので、 Observable 別のスレッドで。これを達成するには電話する必要があることはわかっています observeOn メソッドを作成し、のインスタンスを渡します rx.lang.scala.Scheduler 議論として。

しかし、そのインスタンスを作成するにはどうすればよいでしょうか?インスタンス化する明らかな方法が見つかりませんでした rx.lang.scala.Scheduler 特性。たとえば、次のコードがあります。

Observable.from(List(1,2,3)).observeOn(scheduler)

誰かが作業例を提供できますか scheduler うまくいく変数は何でしょうか?

役に立ちましたか?

解決

特性はインスタンス化できません。

「既知のサブクラス」の下にリストされている特性のサブクラスの 1 つを使用する必要があります。 APIドキュメント.

他のヒント

すべてのスケジューラがパッケージに含まれています

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)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top