例如:
Observable.fromCallable<Int> {
backgroundTask() // returns an integer
}
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe ({ number -> /* success */ }, { error -> /* fail */ })
通常在后台执行任务(另一个线程)并将其结果返回到主线程中。
这段代码片段将如何使用Kotlin协同程序?
你可以使用withContext()
切换线程。例如,
launch(Dispatchers.MAIN) {
//main thread here
val result = withContext(Dispatchers.IO) {
//IO thread here
backgroundTask()
}
//main thread here again
//doing something with result
}