【发布时间】:2011-05-26 04:27:26
【问题描述】:
我需要执行/显示从 Arraylist 到 JTextArea 的一系列事件,但是,每个事件的执行时间不同。以下是代码,在循环中的第二个事件时失败:
Thread worker = new Thread(new Runnable()
{
public void run()
{
while (eventList.size() > 0)
for (Event ev : eventList)
if(ev.ready())
{
/*try
{
Thread.sleep(1000);
} catch (InterruptedException e1)
{
e1.printStackTrace();
}*/
jTextArea.append(ev.toString() + "\n");
eventList.remove(ev);
}
}
});
worker.start();
【问题讨论】:
-
它“如何?”失败。没有
sleep,它会杀死CPU。 -
可以删除while循环,删除eventList.remove(ev);行
标签: java swing concurrency