gpt4 book ai didi

java - invokeLater 与使用 JTextArea 的 invokeAndWait

转载 作者:行者123 更新时间:2023-12-01 18:10:04 25 4
gpt4 key购买 nike

我有一个在多个线程上运行的 Swing 应用程序,我在 EDT 上创建了 Swing 组件。 Executor 会在某个时刻启动将文本插入到 JTextArea 的线程。但是,与 InvokeAndWait 不同,InvokeLater 并不总是执行附加操作。据我所知,它是异步的、非阻塞的,但仍然应该进行附加。怎么可能?

谢谢

最佳答案

使用EventQueue.invokeLater()从另一个线程更新组件的模型是正确同步的必要条件,但不是充分条件。您仍然需要同步对任何共享数据的访问。在此exampledisplay()参数sfinal不可变的引用String ;可以在display()中安全地访问它无需进一步同步。如果您有final可变对象的引用,考虑 thread-safe collection 。您可以使用引用的方法之一查找违规行为 here 。或者,考虑 SwingWorker 托管后台任务,为example .

关于java - invokeLater 与使用 JTextArea 的 invokeAndWait,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33708881/

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