【问题标题】:Exception "Global evaluation requires a thread to have been loaded" on VSCode when reading values with Dart使用 Dart 读取值时,VSCode 上的异常“全局评估需要已加载线程”
【发布时间】:2022-07-16 13:56:29
【问题描述】:

我一直在尝试在 VSCode 上运行类似的 Dart 代码:

import "dart:io";
void main() {
  print("Input a number");
  int numA = int.parse(stdin.readLineSync()!);
  print("The number is $numA");
}

但是,在为用户输入数字(duh)打印“输入数字”后,程序会冻结并显示消息全局评估需要已加载线程

相同的程序在任何地方都可以正常运行,例如JDoodle 和 IntelliJ。有什么线索吗,伙计们? Stackoverflow 上没有任何线程提供答案。

【问题讨论】:

    标签: dart visual-studio-code


    【解决方案1】:

    默认情况下,应用程序在调试控制台中运行,其中输入用作 REPL 来评估表达式。如果您想与stdin 进行交互,则需要将应用设置为在终端中运行。

    您可以使用 launch configuration 执行此操作,其中包括:

    "console": "terminal",
    

    或者,您可以在 VS Code 中设置 dart.cliConsole 设置:

    "dart.cliConsole": "terminal"
    

    【讨论】:

    • 尖锐的答案!我注意到,如果您使用上下文菜单(弹出“主”功能的菜单)运行 dart 程序,VS Code 会忽略 launch.json 文件中的设置 - 这就是为什么我总是在调试模式。您必须使用 F5 或 CTRL+F5 在 launch.json 设置下运行它,或者如您所说,使用“终端”值而不是“debugConsole”正确配置 cliConsole 键。谢谢!
    • 默认情况下是,运行/调试 CodeLens 链接使用它们自己的默认启动配置。但是,如果您将 "templateFor": "" 添加到启动配置中,则它应该用作 CodeLens 链接的模板(请参阅 dartcode.org/releases/v3-34/#debugger
    【解决方案2】:

    你需要做的就是改变 dart:cli constoleenter image description here

    1.转到扩展 2.dart扩展设置。 3.管理设置enter image description here 4.在设置中向下滚动到“dart:cli” st 它到终端。 祝你好运

    【讨论】:

      猜你喜欢
      • 2018-11-06
      • 2019-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      相关资源
      最近更新 更多