afan 发表于 2012-12-12 21:31:17

回复 45# cfs43210


    AdlibRegister("detect2", 1000 * 60 * 30) ;30分钟
AdlibRegister("detect3", 1000 * 60 * 60) ;60分钟
这两个改到 While 下永远都不会执行吧,30分钟、60分钟… 估计每次时间还未到执行的时间就又被重置了…
另外,你的两层主循环完全可以用一个循环吧While 1
        If "ping=False" Then
                ;代码
                Sleep(1000 * 60 * 3)
                ContinueLoop
        ElseIf "文件<>0" Then
                If "服务器网络通" Then
                        ;代码
                        Sleep(1000 * 60 * 2)
                        ContinueLoop
                Else
                        ;代码
                        Sleep(1000 * 60 * 30)
                        ContinueLoop   
                EndIf   
        Else
                Sleep(1000 * 60 * 5)
        EndIf
WEnd再 p.s, Sleep 太久会睡死……

cfs43210 发表于 2012-12-12 21:45:26

本帖最后由 cfs43210 于 2012-12-12 21:48 编辑

回复 46# afan
高手出手果然是不同,怎么我会想到用2层循环。另外我不是放 AdlibRegister放到While下,而是放detect2()放到While 最后去。谢谢你,你太厉害了!
不知道放在While 下延时30分钟,工作一段时间后会不会出现不循环,象是卡死一样。

cfs43210 发表于 2012-12-12 21:59:08

回复 46# afan
高手出手果然是不同,怎么我会想到用2层循环。另外我不是放 AdlibRegister放到While下,而是放detect2()放到While 最后去。谢谢你,你太厉害了!
不知道放在While 下延时30分钟,工作一段时间后会不会出现不循环,象是卡死一样。出现这现象问题可能会现在哪呢?谢谢!能给个回复!

afan 发表于 2012-12-12 22:02:05

回复 48# cfs43210


    当然,光 Sleep() 是不会有什么问题的,问题在于你的工作代码可能会导致循环 Sleep() ,这需要你自己在工作代码中排查。

cfs43210 发表于 2012-12-12 22:16:35

回复 49# afan
我的工作代码没有其它循环,只有下载和一个时钟前置窗口。其它都是IF较多。先出掉一层循环用用看。谢谢啦!

baiqmdpdc 发表于 2012-12-15 20:53:57

学习学习...
页: 1 2 3 [4]
查看完整版本: 循环代码求解?循环里面里又循环和延时!(已解决)