如何在调用时使用 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 块中的内容。