java - Javafx 应用程序 GUI 在执行查询时冻结
问题描述
我正在尝试构建一个将在循环中执行多个查询的应用程序。查询将一个接一个地执行(一个接一个)。如果我在一个线程中编写代码,则 GUI 会在查询期间冻结(它们需要一段时间),只有在它们完成后才会再次激活,我也希望有一个工作进度条。
protected void onButtonClick() throws InterruptedException {
String[] array = getIDs();
progressText.setText("Starting...");
for (int i = 0; i < array.length; i++) {
progressText.setText("Updated: " + i + " of " + array.length + " ids.");
executeSingleQuery(array[i]);
}
progressText.setText("Done!");
}
我知道我可能应该在线程上工作,但我真的不知道如何。如果我添加
new Thread(() ->executeSingleQuery(array[i])).start();
对于循环,每次迭代都会创建一个新线程,我的观点是查询应该一次执行一个;另外我希望进度条正常工作。你能帮我找到解决办法吗?
解决方案
推荐阅读
- android - Room 使用 @Relation 注解 - 一对多关系 where 子句子关系
- lotus-notes - 如何从其他选定的文档中获取值并将值显示到一个文档中
- c# - edit.cshtml 在 mvc5 razor 中返回错误 HTTP 404
- amazon-web-services - 如何将无服务器 Step Function/状态机/Lambda 构建嵌套到现有的 AWS CloudFormation ElasticBeanstalk 应用程序中?
- logout - 注销问题 Codecharge - 从一个应用程序注销
- python - 在这个 Python 代码片段中调用函数中的函数是如何工作的?
- neural-network - 在 DNN 中应用批规范与仅使用权重和偏差有什么区别?
- node.js - TypeError [ERR_INVALID_OPT_VALUE]:对于选项“主机名”无效
- scala - 包对象可以在scala中有一个apply方法吗?
- r - 将 R 中的向量按特定顺序转换为下/上三角矩阵