我有SwingWorker
执行:
public Void doInBackground() throws InterruptedException
{
while (true)
{
while(_update)
{
}
}
}
如果_update设置为false,让EDT永久循环是否安全?或者我应该让它每秒睡觉吗?
- 编辑
看起来我没有使用SwingWorker,因为它应该被使用。谢谢大家。我会坚持创建SwingWorkers,因为我需要它们。
答案 0 :(得分:4)
让Event Dispatch Thread进入循环是不安全的。
需要事件派发线程来提供用户与应用程序的交互。如果您希望事件每隔几秒钟就会消失一次,您应该在每次完成时将其或其他副本放回事件队列中。
答案 1 :(得分:1)
为什么不启动另一个线程并让它根据需要运行/休眠,让它使用SwingUtilities.InvokeLater或者根据需要做任何UI工作?
没有任何其他上下文,您可能会误用SwingWorker?