一个计时器为1ms,另一个为150ms,cpu的占用较高40%,主要是150ms的那个。而且导致1ms那个即不准确,有好的解决方法吗?

解决方案 »

  1.   

    一个计时器为1ms,另一个为150ms
    ------------------------------
    什么做的计时器?说清楚呀!
      

  2.   

    Dim i, j As IntegerPrivate Sub Command1_Click()
        Timer1.Enabled = False
        Timer2.Enabled = False
        
    End SubPrivate Sub Timer1_Timer()
        i = i + 1
        Text1 = i
        
    End Sub
    Private Sub Timer2_Timer()    j = j + 1
        
        Text2 = i
        
    End Sub
    确实一会儿两文本框中的值就一样了
      

  3.   

    Timer不可能精确到1ms的,Timer事件发生的最快间隔在18ms左右。而且NT内核系统与9X内核系统,还有不小的差别,NT的默认CPU时间片小,所以会快些。因Timer是后台事件,只在系统空闲时才会发生,所以误差会很大,例如:你虽设了20ms的Timer,但有个文件需复制30秒,中间没有Doevents,那最快的一次Timer事件也将在30秒后发生。误差几千倍!一般来说20ms以下的Timer是没有什么意义的,用Timer计时,建议使用绝对时间,而不能用相对累计时间,那样误差也会累计的^_^
      

  4.   

    同一线程下的多个timer不能同时运作。示例程序:
    Private Sub Command1_Click()
    Label1.Caption = "0"
    Label2.Caption = "0"
    Timer1.Interval = 1
    Timer2.Interval = 1
    Timer1.Enabled = True
    Timer2.Enabled = True
    End Sub
    Private Sub Timer1_Timer()
    Do
    Label1.Caption = Label1.Caption + 1
    DoEvents
    Loop
    End SubPrivate Sub Timer2_Timer()
    Do
    Label2.Caption = Label2.Caption + 1
    DoEvents
    Loop
    End Sub