Kotlin协程如何获取当前线程的协程作用域?
在Kotlin协程中,希望为当前线程创建一个引用,并在以后使用它Kotlin协程如何获取当前线程的协程作用域?,kotlin,kotlin-coroutines,Kotlin,Kotlin Coroutines,在Kotlin协程中,希望为当前线程创建一个引用,并在以后使用它 fun myFuncion(){ //save current Thread CoroutineScope var currentCoroutineScope : CoroutineScope // <How to create?> GlobalScope.launch { //Do something 001 currentCoroutineScope .la
fun myFuncion(){
//save current Thread CoroutineScope
var currentCoroutineScope : CoroutineScope // <How to create?>
GlobalScope.launch {
//Do something 001
currentCoroutineScope .launch {
//Do something 002
}
}
}
fun myfunction(){
//保存当前线程协同作用域
var currentCoroutineScope:CoroutineScope//
GlobalScope.launch{
//做点什么
currentCoroutineScope.launch{
//做点什么
}
}
}
有人可以帮忙吗?您可以使用
val scope = CoroutineScope(Dispatchers.Default)
然后你可以像这样使用它
fun myFuncion() {
scope.launch {
// do something
}
}
评论更新:
如果从主线程调用myFunction()
,则可以执行类似的操作
fun myFuncion() {
scope.launch {
// do something
withContext(Dispatchers.Main) {
//Do something 002
}
}
}
对不起,这不起作用。即使我从“main”调用myfunction,“//do something”在“DefaultDispatcher-worker-2”(例如)@SudarNimalan上运行,它也将在您将在
CoroutineScope(Dispatchers.Default)
中设置的任何调度器上运行。您可以将默认值更改为io
etcI要确保“//Do something 002”在myFunction的同一作用域上运行谢谢-我不想硬编码“Dispatchers.Main”如果我想从其他作用域调用myFunction,我想使用该作用域。您好,我也有同样的问题。我想在另一个作用域中调用suspend func,然后在原始作用域中调用其他方法。你解决问题了吗?我使用的唯一解决方案是:-将作用域作为函数的参数传递。