如何在一段时间后启动代码?
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);
}
}
我正在使用 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);
}
}