Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中停止计时器_Java_Timer_Timertask - Fatal编程技术网

在java中停止计时器

在java中停止计时器,java,timer,timertask,Java,Timer,Timertask,抱歉再次打扰你 我在停止计时器方面遇到了麻烦。 我试着做一个布尔运算,在一次运行后,它会得到一个错误的值,然后取消计时器,但没有成功 计时器应在特定时间运行一次。使用timer.cancel()可以在运行任务之前将其取消 我想我可以在日期上加上几毫秒,这样它就会停止(连同timer.cancel()),但它不起作用 我会让你知道密码: public class MyTimeTask extends TimerTask { private String name; public

抱歉再次打扰你

我在停止计时器方面遇到了麻烦。 我试着做一个布尔运算,在一次运行后,它会得到一个错误的值,然后取消计时器,但没有成功

计时器应在特定时间运行一次。使用timer.cancel()可以在运行任务之前将其取消

我想我可以在日期上加上几毫秒,这样它就会停止(连同timer.cancel()),但它不起作用

我会让你知道密码:

public class MyTimeTask extends TimerTask {
    private String name;

    public MyTimeTask(String name) {
        this.name = name;
    }
    @Override
    public void run() {
        System.out.println(this.name);
    }
}
这是我试图解决这个问题的方法之一,但我不能,也不知道在所选日期上添加毫秒是否适合使其停止

我做错了什么

谢谢

public static void main(String[] args) throws ParseException {
        DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        String yearMonth = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
        String day = "05";
        Date date = dateFormatter.parse(yearMonth + "-" + day + " 02:10:08PM");

        System.out.println(yearMonth);
        Timer timer = new Timer();
        TimerTask task = new MyTimeTask("Patrick");
        timer.schedule(task, date);
        long expiremilis = 10l;
        Date expireDate = new Date(date.getTime() + expiremilis);
        timer.cancel();
}