Java线程 - 永久循环在Swing事件分派线程
问题描述:
我有一个SwingWorker
与实施:Java线程 - 永久循环在Swing事件分派线程
public Void doInBackground() throws InterruptedException
{
while (true)
{
while(_update)
{
}
}
}
如果_Update设置为false,是安全的让EDT永远走在一个循环?或者我应该让它每秒都睡觉?
- 编辑
它看起来像我为它应该被用来使用的不是SwingWorker的。谢谢大家。我会坚持按照需要创建SwingWorkers。
答
让事件派发线程进入循环并不安全。
需要事件分派线程来提供用户与应用程序的交互。如果您希望事件每隔几秒就关闭一次,则应在每次完成时将其或其他副本放回到事件队列中。
答
为什么不开始另一个线程,让它根据需要运行/休眠,并让它使用SwingUtilities.InvokeLater或根据需要进行UI工作?
没有任何其他的上下文,它看起来像你可能会滥用SwingWorker?
我不明白你为什么要在美国东部时间沾上东西?在那个代码中你涉及到EDT? – hvgotcodes 2010-12-08 22:18:48