在 Kotlin 协程中,希望为当前线程创建一个引用并在以后使用它。
fun myFuncion(){
//save current Thread CoroutineScope
var currentCoroutineScope : CoroutineScope // <How to create?>
GlobalScope.launch {
//Do something 001
currentCoroutineScope .launch {
//Do something 002
}
}
}
谁能帮忙?
可以使用以下命令保存对协程作用域的引用
val scope = CoroutineScope(Dispatchers.Default)
然后你可以像这样使用它
fun myFuncion() {
scope.launch {
// do something
}
}
从评论更新:
如果您从主线程调用myFunction()
,那么您可以执行以下操作
fun myFuncion() {
scope.launch {
// do something
withContext(Dispatchers.Main) {
//Do something 002
}
}
}
import kotlin.coroutines.coroutineContext
suspend fun somewhere() {
val scope = CoroutineScope(coroutineContext)
scope.launch { ... }
}