如何在一段时间后启动代码?

How to launch code after an amount of time?

我正在使用 Portcom 事件侦听器侦听 rs232Com,然后为接口控制器生成 propertychangelistener,一切正常。

我的新问题是某些传感器(风速计)的采集可以在没有任何特定指示(脉冲响应)的情况下终止,并且主要取决于所使用的轴承。

我能看到的唯一解决方案是,在一段时间后不再采集(2000 毫秒)我想结束记录以避免由于非自愿传感器处理而记录数据。

此时我可以使用按钮停止获取新消息侦听器列表的注销控制器,但我想自动执行此操作。

想念我的要点是创建一个定时器,它可以在他的延迟时间 out.This 之后启动一个任务,并在每次采集时用一个重新初始化函数来喂他,几乎与看门狗的工作方式相同。

我开始在网上搜索,但我没有找到解决方案,而且找不到方向

-定时器class -使用线程/可运行
-日程 -修改看门狗

提前致谢

对于这类问题,我经常使用具有计时器作为属性的自定义线程。线程定期检查它的计时器并在它结束时做一些事情。如果我需要继续,我可以在 timer 属性中添加时间。

 private static class CustomThread extends Thread {
    private static int wait = 1000;
    private int timer = 0;
    
    public DeleteThread(int timer) {
        this.timer = timer;
    }
    
    public void addToTimer(int time) {
        this.timer += time;
    }

    public void run() {
        while(this.timer > 0) {
            try {
                Thread.sleep(wait);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            this.timer -= wait;
        }
        
        //timer as ended
        doSomething();
    }
}

public class Main {
    public static void main(String[] args) {
        CustomThread myThread = new CustomThread(2000);
        myThread.start();

        //someCode

        //Here I need my thread to continue for 1000 more
        myThread.addToTimer(1000);
    }
}