gpt4 book ai didi

java - SwingUtilities.invokeLater 做什么?

转载 作者:IT老高 更新时间:2023-10-28 20:50:10 25 4
gpt4 key购买 nike

SwingUtilities.invokeLater 有什么作用?它只是延迟其 run 方法中的代码块的执行吗?在 invokeLater 函数中调用一个 Action 或在我们想要执行的线程结束时简单地调用它有什么区别?任何人都可以帮助我了解 invokeLater 函数的真正作用吗?

最佳答案

正如其他答案所说,它在 AWT 事件调度线程上执行您的 Runnable。但是你为什么要这样做呢?因为 Swing 数据结构不是线程安全的,所以为了向程序员提供一种易于实现的防止并发访问它们的方法,Swing 设计者制定了规则,即所有访问它们的代码都必须在同一个线程上运行。对于事件处理和显示维护代码,这会自动发生,但是如果您已经启动了一个长时间运行的操作 - 当然是在一个新线程上 - 您如何表示它的进度或完成?您必须修改 Swing 控件,并且必须从事件调度线程中进行。因此 invokeLater

关于java - SwingUtilities.invokeLater 做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6567870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com