VB程序中有一个timer,还有on error语句,timer里就是从一个数据库读取数据存入到另一个数据库中,然后一般情况下,正常运行,但是有时候会卡死。就是我在timer最后一行写下了label1.caption=now 然后有时候输出的时间就不变了,求分析可能是什么原因啊。VBtimer卡死

解决方案 »

  1.   


    您好,VB定时时间不是指事件结束到下次事件开始的时间么?
    比如我timer时间间隔是5秒,每次执行用3秒,那第1秒执行,正常情况第4秒结束执行,下一次执行是第9秒啊,怎么会跟定时时间有关呢?
    而且程序卡死是偶尔才会出现的。
      

  2.   

    VB定时时间不是指事件结束到下次事件开始的时间么?
    不知道你是从哪得到这个说法的,反正我是没听说过,Timer就是使用Settimer注册的一个时钟,其按你指定的时间间隔向窗口发送定时消息,发送该消息是不会知道你上次的那个定时消息是否处理完。如果没有处理完,就会放在窗口队列中等待,直到你处理完当前的定时消息及其其它消息,又再次重覆定时操作,又进入等待....
      

  3.   


    可是我在timer开始的时候赋值label1.caption=now   timer结束的时候赋值label2.caption=now(两次相差3秒,即程序执行3秒)   timer定时设置为5秒       第二次timer运行,开始的时候label1.caption比label2.caption晚5秒,这么解释呢?
      

  4.   

    可能是你在 OnTimer 事件中关闭和重启了 Timer。至于 Label 没有刷新,你加上强制刷新试试:Label1.Caption = Now
    Label1.Refresh
      

  5.   


    我程序结构巨简单,就一个timer事件,然后开始的时候label1.caption=now 结束的时候label2.caption=now
    中间代码就是读一个数据库,写另一个数据库
    不过还有另一个程序和我在做同样的事情,他读我写的数据库,然后存到另一个数据库中,会不会是这个原因?
      

  6.   

    label1.caption=now :label1.refresh
      

  7.   

    DoEvents 加上这句试试
      

  8.   

    我来告诉你吧 
    简单 明确 
    估计是你的timer 在你里面的程序还没执行完就又运行了
    你可以这样
    Private Sub Timer3_Timer()
        Timer3.Interval = 1000
         Timer3.Enabled = False
        ''''你要执行的代码
             Timer3.Enabled = True
    End Sub
      

  9.   

    abel1.Caption = Now
    Label1.Refresh 
    DOEVENTS