找回密码
 加入
搜索
查看: 2037|回复: 0

[AU3基础] 定时器问题求解

[复制链接]
发表于 2011-9-27 15:57:03 | 显示全部楼层 |阅读模式
本帖最后由 xms77 于 2011-9-27 15:58 编辑

自己做了一个定时器,没有用AU3自带的AdlibRegister函数,一开始定时器1看似工作正常,但是后来发现如果处理任务的时间超过定时时间间隔,定时器会出现失效1小时的情况发生,于是后来修改了定时器1,变成定时器2,基本解决了这个问题。不知道如果用AdlibRegister函数的话,用什么方法来解决这个问题?

定时器1
$Threshold_time = @MIN
$Rightnow_Min = @MIN
$Time_interval = 1     ;间隔时间为1分钟
while
        $Rightnow_Min = @MIN
        If $Rightnow_Min = $Threshold_time Then            ;如果当前的分钟和指定的分钟相符
    
                $Threshold_time = $Rightnow_Min + $Time_interval         ; 更新下一次做任务的分钟
                If $Threshold_time >= 60 Then $Threshold_time = $Threshold_time - 60             ;如果下一次的指定分钟超过60,则减去60
                
                ;.........
                ;.......
                ;....
                ;...
                MsgBox(0,"next time is ","I am doing task now.")
                                
        EndIf 
        Sleep(100)
WEnd
定时器2
$Threshold_time = @MIN
$Rightnow_Min = @MIN
$Time_interval = 1     ;间隔时间为1分钟
while
        $Rightnow_Min = @MIN
        If $Rightnow_Min = $Threshold_time Then            ;如果当前的分钟时间和指定的分钟时间相符
    
                $Threshold_time = $Rightnow_Min + $Time_interval         ; 更新下一次的有效分钟时间
                If $Threshold_time >= 60 Then $Threshold_time = $Threshold_time - 60             ;如果下一次的指定分钟超过60,则减去60
                $timeA = @MIN        ;任务开始时间
                ;.........
                ;.......
                ;....
                ;...
                MsgBox(0,"next time is ","I am doing task now.")
                $TimeB = @MIN       ;任务完成时间
                If $TimeB < $timeA Then $TimeB = $timeb + 60      ;说明已经进入下一个小时
                If $TimeB - $timeA >= $Time_interval Then $Threshold_time = $TimeB  ;如果任务处理时间超出定时时间间隔    
                If $Threshold_time >= 60 Then $Threshold_time = $Threshold_time - 60 ; 修正下次触发任务的阀值时间,如果超过60,就减去60
                
        EndIf 
        Sleep(100)
WEnd
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-20 23:53 , Processed in 0.075675 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表