我在互联网上阅读了许多文章,介绍了什么时候应该在EDT中运行,什么时候不应该运行。但是我仍然不确定我是否理解,所以我想问一些关于此的问题:


默认情况下,EDT中将运行哪些代码段?
默认情况下,将运行哪些代码段
美东时间?
我应该何时使用InvokeLater(),以便默认情况下
在EDT外部运行,会在内部运行吗?
什么时候应该通过创建一个新线程并将该代码放入EDT中来阻止一段代码(默认情况下)在EDT中运行?


谢谢

最佳答案

事件侦听器执行的所有代码。
main方法中的代码,在显式启动的线程中执行的代码或通过使用Timer或SwingWorker启动的代码。
在main方法中创建Swing GUI时。或者,当您想从后台线程内部与Swing组件(或其模型)进行交互时。
当这段代码被阻塞时(例如较长的IO)或执行需要花费几毫秒以上的时间。从EDT内部执行的所有代码都会阻止该线程执行其主要工作:重新绘制GUI并对事件做出反应。

关于java - 关于EDT(Java),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20901770/

10-10 05:52