如何在调用时使用 Timer 编写一个 void 方法来停止程序 1 秒?
How to write a void method to stop the program for 1 seconds using Timer when called?
Java的版本是8u60。
我想写一个void方法,可以暂停程序1秒,但总是有例外。
public void OnePause(){
Timer timerOne = new Timer();
timerOne.schedule(timerOneTask(), (long)1000);}
private TimerTask timerOneTask() {
return null;
}
}
我不想使用 Thread.Sleep();因为它会在多次调用时暂停所有时间的总和,而不是单独暂停。
非常感谢。
现在您的代码已损坏。除了尝试将 null
发送到 Timer.schedule(...)
之外,您的语句 timerOne.schedule(timerOneTask(), (long)1000);}
将每 1000 毫秒调用一次 timerOneTask()
,但这不会暂停程序。您必须休眠线程:
private TimerTask timerOneTask(int sleepTime) {
return new DoNothingTimerTask extends TimerTask {
public void run() {
try {
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
// awoken prematurely, handle this
}
}
}
除非你需要在某个时间间隔安排 "pauses",否则将 Timer
API 引入组合中是没有用的;如果没有,您可以简单地使用 try...finally 块中的内容。
Java的版本是8u60。
我想写一个void方法,可以暂停程序1秒,但总是有例外。
public void OnePause(){
Timer timerOne = new Timer();
timerOne.schedule(timerOneTask(), (long)1000);}
private TimerTask timerOneTask() {
return null;
}
}
我不想使用 Thread.Sleep();因为它会在多次调用时暂停所有时间的总和,而不是单独暂停。 非常感谢。
现在您的代码已损坏。除了尝试将 null
发送到 Timer.schedule(...)
之外,您的语句 timerOne.schedule(timerOneTask(), (long)1000);}
将每 1000 毫秒调用一次 timerOneTask()
,但这不会暂停程序。您必须休眠线程:
private TimerTask timerOneTask(int sleepTime) {
return new DoNothingTimerTask extends TimerTask {
public void run() {
try {
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
// awoken prematurely, handle this
}
}
}
除非你需要在某个时间间隔安排 "pauses",否则将 Timer
API 引入组合中是没有用的;如果没有,您可以简单地使用 try...finally 块中的内容。