2011-11-27 31 views
0

我在另一个关于swing定时器API和你的方法的问题中看到,preference stop(); 我的问题是,是否有可能停止(如果util.timer取消)计时器当前正在执行?停止()当前正在执行的定时器

我有一个计时器,当我调用stop()时需要停止一个线程,即使它正在运行。

+1

混合线程和摆动永远不是一个好主意。 – nmagerko

+0

javax.swing.Timer –

回答

3

是的,可以通过调用stop()来停止摆动计时器。这就是为什么这个班有这种方法。说了这些,我有一种感觉,那就是你告诉我们的问题还有更多。但我不知道Swing Timer与“停止线程”有什么关系。

编辑
幽州:

我的问题是,我有一个秋千计时器,该执行另一个单一方法,即执行每30秒,我可以手动执行相同的单一的方法,顺便说一句,我想在手动方法运行时以及手动方法结束时停止摆动计时器,因为计时器会阻碍其他方法,所以启动摆动计时器。主要是手动方法。

一个可行的办法:你可以有摇摆定时器,只是附上它的大部分代码中的,如果由布尔控制的声明说叫,runTimer,所以,在定时器的actionPerformed代码只有在布尔运行是真的。然后在SwingWorker中运行后台线程,但在执行SwingWorker之前将runTimer布尔值设置为false,然后在SwingWorker的done()方法中将其设置为true。

+0

我调用了stop方法,但是当有一个线程在执行时,这个线程仍然执行直到结束,并且我需要停止所有线程,甚至当前正在运行的线程 –

+0

您不停止一个线程这条路;而只是停止了一个Swing Timer。如果你需要停止一个线程,最好给它一个停止的方法,比如当它的作用域内的布尔值被改变时停止,或者允许线程支持中断。 –

+0

我的问题是,我有一个摆动计时器,并执行另一种方法,每30秒执行一次,我可以手动执行相同的单一方法,顺便说一句,我想在手动方法运行时停止摆动计时器,当手动方法结束时,摆动定时器启动,因为定时器可能会阻碍其他方法。主要是手动方法 –

相关问题