Kotlin协程中的observeOn和subscribeOn的等价物

问题描述 投票:4回答:1

例如:

Observable.fromCallable<Int> {
   backgroundTask() // returns an integer
   }
   .observeOn(AndroidSchedulers.mainThread())
   .subscribeOn(Schedulers.io())
   .subscribe ({ number -> /* success */ }, { error -> /* fail */ })

通常在后台执行任务(另一个线程)并将其结果返回到主线程中。

这段代码片段将如何使用Kotlin协同程序?

android kotlin kotlinx.coroutines
1个回答
3
投票

你可以使用withContext()切换线程。例如,

launch(Dispatchers.MAIN) {
    //main thread here
    val result = withContext(Dispatchers.IO) {
        //IO thread here
        backgroundTask()
    }
    //main thread here again
    //doing something with result
}
© www.soinside.com 2019 - 2024. All rights reserved.