我需要在计时器到期后执行某个代码块。但是如果设置了标志,定时器必须立即结束。
使用内置的 Timer 类,我可以在某个时间间隔后安排任务。问题是该类的实例只能被调度和取消一次,之后它会给出一个错误,即计时器已被取消。
简单的解决方案似乎是我每次都创建一个新的 Timer 实例。但这在这里是不可能的,因为我有一个无限的 while 循环,而且我一直需要重用同一个实例。
另一种方法是使用线程并创建自定义计时器函数。我试过了,但线程不会立即执行,因此如果我取消计时器,它不会立即取消,但只有在几毫秒后实现线程时才会取消。
我还有什么选择?
另外,请参阅https://stackoverflow.com/questions/19585841/timer-instance-in-loop-in-java