- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个线程使用 SwingUtilities.invokeLater 在我的 JFrame 上显示更新。线程的速度是可调的,当它设置为全速(更新之间没有 sleep )时,我的程序会严重减慢。我想问题是我的线程生成了太多 JFrame 线程无法使用的 SwingUtilities.invokeLater 事件。那么我可以在我的线程上做些什么来删除以前添加但未消耗的事件吗?或者我应该使用其他一些方法来更新 JFrame 而不使用 SwingUtilities.invokeLater?
提前致谢。
最佳答案
这可能是 SwingWorker
的完美工作。您可以发布增量更新,SwingWorker
将批量更新它们以解决性能问题:
Because the process method is invoked asynchronously on the Event Dispatch Thread multiple invocations to the publish method might occur before the process method is executed. For performance purposes all these invocations are coalesced into one invocation with concatenated arguments.
您想要在 EDT 上运行的代码,可以通过实现 process()
添加。更新列表在参数中传递给您。
关于java - 全速线程上的 SwingUtilities.invokeLater,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13114097/
我是一名优秀的程序员,十分优秀!