Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin协程如何获取当前线程的协程作用域?_Kotlin_Kotlin Coroutines - Fatal编程技术网

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

在Kotlin协程中,希望为当前线程创建一个引用,并在以后使用它

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,然后在原始作用域中调用其他方法。你解决问题了吗?我使用的唯一解决方案是:-将作用域作为函数的参数传递。