我的应用程序上运行了 3 个计时器,它们负责处理不同的操作。定时器 1 将处理应用程序的自动注销,定时器 2 处理更新表格,定时器 3 处理更新摆动按钮的颜色。第一个计时器使用基于变量及其值的计算,第二个和第三个计时器使用 MYSQL 查询。
现在,当我在性能一般的机器上运行这个应用程序时,应用程序并没有移动。我需要等待几秒钟才能正常点击或打开一个窗口。和定时器有关系吗?如果是的话,我有什么替代建议来摆脱这个计时器问题吗?
很可能是计时器,如果他们在被解雇时正在执行大量工作。对于长时间运行的任务使用摆动计时器通常不是一个好主意,因为它们会阻塞 EDT 并冻结 UI。
以下是一些避免这种情况的建议:
问题不在于你有多少个定时器,而是每个定时器需要多长时间来完成它的工作,因为定时器的actionPerformed方法是在 Swing 事件线程上运行的,这意味着当一个定时器在做它的事情时,不会发生 UI 更新。