我有一个按钮,单击该按钮会进行计算,如果再次按下该按钮,如果未完成,计算应该停止。我怎样才能在这里取消_doCalc的执行呢?
class _MyHomePageState extends State<MyHomePage> {
bool _calculating = false;
void _doCalc() async {
_setCalculating(true);
// do some calculation
...
_setCalculating(false);
}
void _setCalculating(bool calculating) {
setState(() {
_calculating = calculating;
});
}
@override
Widget build(BuildContext context) {
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new RaisedButton(
child: Text(_calculating ? "Stop" : "Start"),
onPressed: () {
if (_calculating) {
_setCalculating(false);
// stop execution of _doCalc() ????
} else {
_doCalc();
}
},
),
],
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个 Lambda 函数,该函数在 Java 中运行 Selenium 测试,作为 AWS 中 CI/CD 管道的一部分。但是,该函数安装 Chromedriver 后失败,因为缺少 Chromedriver 所需的 .so 文件:
/tmp/chrome_driver7811961600494562711/chromedriver: error while loading shared libraries: libglib-2.0.so.0: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我已了解到您可以通过 Lambda 中的软件层包含本机库,并且我了解您必须在 Amazon Linux 环境中对其进行编译,如此处所述。
但是,在压缩文件并创建图层后,它仍然没有拾取库,并给出相同的错误。我还尝试将它放在 zip 文件中的各个目录中,例如/opt、/opt/lib,并LD_LIBRARY_PATH在函数中设置变量,但仍然没有成功。任何帮助表示赞赏。
java shared-libraries amazon-web-services selenium-chromedriver aws-lambda
我试图迭代一组对象并创建一个逗号分隔的名称字符串.代码的注释部分只有在它不是集合中的最后一个时才会添加逗号,但它会生成以下错误:
错误:'operator + ='不匹配(操作数类型为'std :: _ Rb_tree_const_iterator'和'long int')_M_current + = -__ n;
如果我使用向量而不是集合,它工作正常.我究竟做错了什么?
std::string paramList = "";
std::set<Param>::iterator end = params.end();
for (std::set<Param>::iterator it = params.begin(); it != end; ++it) {
paramList += (*it).name;
/*if (it != end -1) {
paramList += ",";
}*/
}
Run Code Online (Sandbox Code Playgroud)