Как сделать опцию паузы в java - PullRequest
0 голосов
/ 18 апреля 2020

Теперь я использую java для создания программы Timer. Но проблема в том ... Я хочу добавить опцию паузы в моей программе, но я не могу найти Как добавить опцию паузы .. Поэтому, пожалуйста, дайте мне несколько советов о том, как вставить опцию паузы ..

import java.util.Scanner;
public class HelloWorld {
    public static void main(String[] args) throws InterruptedException {
        Scanner sc = new Scanner(System.in);
        System.out.println("Please enter Minutes : ");
        int min = sc.nextInt();
        long sec = min * 60;
        for(long i = sec; i >= 0; i--) {
            if(i % 30 == 0) {
                System.out.println(i/60 + " min" + i%60 + " sec");
            }
            Thread.sleep(1000);
        }
        System.out.println("Timer is over..");
    }
}

1 Ответ

1 голос
/ 18 апреля 2020

Я предполагаю, что вы хотите дать пользователю возможность ввести что-то и заставить отсчет времени приостановиться. Проблема (я думаю) состоит в том, что если вы запросите ввод, то это заблокирует текущий поток выполнения, и, следовательно, ваш таймер остановится.

Чтобы решить эту проблему, вам потребуется некоторая форма асинхронного выполнения. Возможно, вы захотите взглянуть на Таймер : вы можете использовать это, чтобы запланировать обратный вызов каждую секунду. Эта функция обратного вызова может напечатать следующий номер в последовательности обратного отсчета, в то время как ваш основной поток ожидает ввода пользователя и отменяет таймер, если пользователь вводит pause.

...