繁体   English   中英

由于源代码中有多种实现,因此异步无法编译

Async won't compile because of multiple implementations in source

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试运行以下代码,但未运行,因为编译器不知道要调用哪个版本的async方法。 我如何告诉该打给谁?

v

ar counter=0
val workerA=asyncIncrement(5000)
val workerB=asyncIncrement(100)
workerA.await()
workerB.await()

print("counter = $counter")

fun asyncIncrement(by:Int)=async{
    for(i in 1..by){
        counter++
    }
}

只需将代码复制并粘贴到暂存文件中或任何地方,您应该会看到相同的编译器错误

1 个回复

从Kotlin 1.3开始,您需要在示波器上调用async 在此示例中,我选择了GlobalScope 但是,选择哪个范围都没有关系,您始终必须显式导入async扩展功能。

import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.async
import kotlinx.coroutines.runBlocking
import java.util.concurrent.atomic.AtomicInteger


fun main(args: Array<String>) {

    val counter=AtomicInteger(0)

    fun asyncIncrement(by:Int)= GlobalScope.async{
        for(i in 1..by){
            counter.incrementAndGet()
        }
    }

    val workerA=asyncIncrement(5000)
    val workerB=asyncIncrement(100)
    runBlocking {
        workerA.await()
        workerB.await()
    }

    print("counter = $counter")
}

顺便说一句:我将变量counterint更改为AtomicInteger因为两个async块可能在不同的线程中运行。 我介绍了runBlocking ,因为await必须在suspend函数中运行。

1 无法编译的源代码错误?

我在运行程序时收到此消息。 我该如何纠正该错误? 我在留言中用评论标记了那条线! 信息: 线程“主”中的异常java.lang.RuntimeException:无法编译的源代码-错误的符号类型:login.Login.frame(Login.java:52)上的login. ...

3 错误:“无法编译的源代码”

我处于初步阶段,无论我尝试什么,似乎无法让程序运行。 我认为这个问题与我如何调用关键字“this”有关,但我不能确定。 现在我让程序简单地打印出JComboBox中突出显示的内容,以便保持简单,因为比较方面可以稍后使用“if”语句完成。 任何帮助表示赞赏。 这是我的代码: 显 ...

6 从源代码编译keepalived无法正常工作

我一直在尝试编译和安装keepalived,如下面的链接http://www.keepalived.org/doc/installing_keepalived.html 我在ubuntu / trusty64流浪汉机器上构建它,我已经安装了文档中指定的所有要求 当我执行“ make ...

7 NetBeans无法正确编译我的Java源代码

我遇到了NetBeans 7.4(还有以前的版本,例如NetBeans 7.3)的问题。 当我清理并构建Java Web应用程序时,便成功构建了该应用程序,但是该构建过程中并未包含我新添加的代码。 我通过反编译类来检查我的更改是否通过来确认这一点,但是没有成功。 我尝试了不同版本的 ...

9 无法编译任何opengl / freeglut / glut源代码

我有这个代码,我是从opengl示例代码中获取的: 它应该工作对吗? 但是当我运行它时: 我正确安装了opengl,freeglut(我的意思是,它可以运行,并且vc ++查找没有问题),但是我无法运行我找到的任何源代码。(相同的错误) ...

10 无法编译Neo4j fdw源代码

我从http://wiki.postgresql.org/wiki/Foreign_data_wrappers下载了Neo4j fdw源代码,但无法编译该源代码。 以下是我尝试编译时遇到的错误: 如错误所示, Neo4j FDW中缺少src和contrib目录。 您能否告诉我 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM