我已经在互联网上阅读了一些关于什么时候应该在EDT中运行的文章,以及什么时候不应该。但是我仍然不确定我理解,所以我想问一些关于这个的问题:
默认情况下会运行哪些代码内部 EDT?
要运行哪些代码,默认在之外 EDT?
我什么时候应该使用InvokeLater()这样的东西,默认情况下 在EDT之外跑,会在里面跑吗?
我应该何时阻止一段代码在EDT内运行(默认情况下),方法是创建一个新线程并将该代码放入其中?
由于
答案 0 :(得分:4)
答案 1 :(得分:0)
首先非常感谢您对编辑和格式化您的问题。在回答你的问题时,它会有很大的帮助。
此外,我必须承认我对自己的答案并不是100%肯定,所以小伙子们:如果我错了,请随时纠正我。
改变图形用户界面的一切。
不太确定。
如果您需要使用时间密集型计算更新您的gui。 例如,如果要显示0到100000000之间的数字 的JLabel。
阻止你的gui用户互动的一切因为
这需要花费很多时间,例如一些计算很多
数据集..但您需要确保仅从中访问值
一个线程或用volatile
和
来同步线程
synchronize
...