java Timer定时器停止该怎么办?

java Timer定时器停止该怎么办?,第1张

private void closeTimer() {
if (timerTask != null) {
timerTaskcancel();
timerTask = null;
}
if (mTimer != null) {
mTimercancel();
mTimer = null;
}
}
/
计时 *** 作 改变界面的倒计时信息
/
private void timerOperation() {
recLen = RECENT_SECOND;
mTimer = new Timer();
timerTask = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
recLen--;
if (recLen >= 0) {
Message msg = new Message();
msgwhat = SECOND_UPDATE;
msgarg1 = recLen;
handlersendMessage(msg);
}
}
};
mTimerschedule(timerTask, PROGRESS_DELAY, PROGRESS_PERIOD);
}

51单片机中的定时器控制字中有两个控制位TR0、TR1,分别用于启动、停止定时器的计数。
任何时刻,当TR0/TR1为1时,T0/T1定时器计数;当TR0/TR1为0时,T0/T1定时器停止计数。
置TR0/TR1为1的指令一般应该在初始化程序或主程序或其他程序中,不能在其自己的中断服务程序中。因为CPU能够进入运行该定时器的中断服务程序,肯定是该定时器已经启动并且计时已到。

错误出现在,你没有对 ”重复“ 的点击做处理

代码应该改成这样:

var oBtn1=documentgetElementById('oBtn1')
var oBtn2=documentgetElementById("oBtn2")
var time=null;
oBtn1onclick=function(){
clearInterval(time); // 这里先清除一下“可能存在”的定时器
time=setInterval(
function cj(){
function num(oNum){
var oNum=Mathfloor(Mathrandom()(1000+1));
if(oNum<10){
return "0"+"0"+oNum
}
else if(oNum<100){
return "0"+oNum
}
else{
return ''+oNum;
}
}
var aNum=String(num())
var oImg=documentgetElementById('abc')
var aImg=oImggetElementsByTagName('img')
for(i=0;i<aImglength;i++){
aImg[i]src='images/'+aNum[i]+'png'
}
}
,10);
}
oBtn2onclick=function (){
clearInterval(time)
}

为每个TimerTask创建不同的Timer对象,想停止某个Timer直接调用其cancel()方法 ,写个小例子
import javautilDate;
import javautilTimer;
import javautilTimerTask;
public class Test{
public static void main(String args[]) throws InterruptedException {
TimerTask task1=new TimerTask(){
public void run() {
// TODO Auto-generated method stub
Systemoutprintln("task1");
}
};
TimerTask task2=new TimerTask(){
public void run() {
// TODO Auto-generated method stub
Systemoutprintln("task2");
}
};
Timer t1=new Timer();
Timer t2=new Timer();
t1schedule(task1, new Date(), 1000);//每隔一秒输出
t2schedule(task2, new Date(), 1000);//每隔一秒输出
Threadsleep(5000);//等待5秒
t1cancel();//停止定时器t1
Threadsleep(5000);//等待5秒
t2cancel();//停止定时器t2
}
}

终止JS运行有如下几种可能:

一终止函数的运行的方式有两种:

1、在函数中使用return,则当遇到return时,函数终止执行,控制权继续向下运行。

2、在函数中使用try-catch异常处理,需要结束时,使用throw抛出异常。

二终止动画特效的运行的方式是使用stop方法:

1、stop([clearQueue],[gotoEnd]):停止所有在指定元素上正在运行的动画。

2、如果队列中有等待执行的动画(并且clearQueue没有设为true),将被马上执行。

3、终止表单提交的方式:在表单提交事件中使用returnfalse;可以阻止表单提交。

4、终止定时函数执行的方式:使用windowclearInterval(定时器对象)或windowclearTimeout(定时器对象);可以终止正在执行的定时器。

扩展资料:

S即Javascript,Javascript是一种由Netscape的LiveScript发展而来的脚本语言,主要目的是为了解决服务器终端语言,比如Perl,遗留的速度问题。

当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有288kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。

你既然都用HAL了,可以打开HAL的源程序看一下它们的作用啊……
__HAL_TIM_DISABLE:关闭CEN位(计数器使能位),也就是停止计数。
__HAL_TIM_DISABLE_IT:关闭指定定时器的指定中断。
HAL_TIM_Base_Stop:调用__HAL_TIM_DISABLE,也就是停止计数。
HAL_TIM_Base_Stop_IT:调用__HAL_TIM_DISABLE_IT和__HAL_TIM_DISABLE,也就是关闭中断并停止计数。
__HAL_TIM_CLEAR_FLAG:清除指定中断标志。
所以,如果你只需要关闭中断、定时器依旧继续运行,那么应当用__HAL_TIM_DISABLE_IT。不过需要注意的是,定时器运行过程中可能会将中断标志位置位的,将来你一旦重新打开中断可能会立即产生中断。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13377797.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-24
下一篇 2023-07-24

发表评论

登录后才能评论

评论列表(0条)

保存