Kotlin Coroutines 如何获取当前线程的 CoroutineScope



在 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 { ... }
}

相关内容

  • 没有找到相关文章

最新更新