Java线程 - 永久循环在Swing事件分派线程

问题描述:

我有一个SwingWorker与实施:Java线程 - 永久循环在Swing事件分派线程

public Void doInBackground() throws InterruptedException 
{ 
    while (true) 
    { 
      while(_update) 
      { 

      } 
    } 
} 

如果_Update设置为false,是安全的让EDT永远走在一个循环?或者我应该让它每秒都睡觉?

- 编辑

它看起来像我为它应该被用来使用的不是SwingWorker的。谢谢大家。我会坚持按照需要创建SwingWorkers。

+0

我不明白你为什么要在美国东部时间沾上东西?在那个代码中你涉及到EDT? – hvgotcodes 2010-12-08 22:18:48

让事件派发线程进入循环并不安全。

需要事件分派线程来提供用户与应用程序的交互。如果您希望事件每隔几秒就关闭一次,则应在每次完成时将其或其他副本放回到事件队列中。

为什么不开始另一个线程,让它根据需要运行/休眠,并让它使用SwingUtilities.InvokeLater或根据需要进行UI工作?

没有任何其他的上下文,它看起来像你可能会滥用SwingWorker?