【发布时间】:2018-06-23 06:07:12
【问题描述】:
我有一个方法,就是调用一个swing timer来启动,调用这个方法后,我必须等到执行的定时器停止。我试过了
while(timer.isRunning(){}
但它没有用,它只是冻结了我的程序。请帮助我并原谅我的英语不好。
【问题讨论】:
-
什么是定时器?
-
定时器完成后不调用方法吗?你不能用那个吗?
-
您到底想达到什么目标?如果您需要等待计时器任务完成,也许您可以轻松地使用
CompletableFuture#supplyAsync。其他可能性是Executor或计时器内部的逻辑以某种方式广播“执行完成”事件(类似于侦听器的模式或简单的方法调用)。 -
此外,如果
while(timer.isRunning(){}正在冻结程序,则意味着您正在某些关键(UI?)线程上执行此操作,在这种情况下,您需要一些异步方式来处理计时器完成事件。 -
是的,我正在使用 UI,当按下键盘上的 x 键时计时器结束