
vb6.0里的timer控件的timer事件为什么运行几天后就停止了
软件一运行,timer控件的timer事件就一直在执行,中间没有停止,即enable和Interval中间都没改变过.Interval为20ms,但不是每隔20ms都执行...
软件一运行,timer控件的timer事件就一直在执行,中间没有停止,即enable和Interval 中间都没改变过.Interval为20ms,但不是每隔20ms
都执行任务,我是用全局变量来计数的,产生几次timer事件才执行相应的任务,不过有两多任务都是在timer事件中执行,分别用不同的计数
来控制,让它们在不同的时间执行。
计数到10000时归零,从头再计。程序运行两三天之后,timer事件就不执行了,以前我也发现过,用源程序跟踪时发现enable为true,
Interval的值也没变。当时猜测问题可能是程序中用的timer控件太多,于是把所有timer控件的任务整合到一个timer里面,后来这个问题就解
决了.不过这个程序timer的Interval值比较大是200ms,现在把timer的Interval值改为20ms,就出现现在的问题了,运行两三天timer就停止
了!是不是Interval的值太小了的原因?
'公共模块变量
Public timerCnt As Integer '时钟到时计数次数
Public TimeOfSinglePathAnser As Long
'初始化
TimeOfSinglePathAnser = rs!SinglePT
TimeOfSinglePathAnser = TimeOfSinglePathAnser \ 20 '整除
timer控件的Interval值为20 , timer事件每执行一次, 计数变量加1, 当计数变量等于10000时, 归0
Private Sub Timer1_Timer()
Dim tc As Integer '
timerCnt = timerCnt + 1 '计数变量加1
If timerCnt Mod 50 = 0 Then
'执行任务1
End If
If timerCnt Mod (TimeOfSinglePathAnser + 5) = 0 Then
'执行任务2
End If
If timerCnt Mod TimeOfSinglePathAnser = 0 Then
'执行任务3
End If
If timerCnt Mod 501 = 0 Then
'执行任务4
End If
If timerCnt Mod 52 = 0 Then
'执行任务5
End If
If timerCnt Mod 3253 = 0 Then
'执行任务6
End If
If timerCnt Mod 104 = 0 Then
'执行任务7
End If
'当计数变量等于10000时,归0
timerCnt = timerCnt Mod 10000
End Sub 展开
都执行任务,我是用全局变量来计数的,产生几次timer事件才执行相应的任务,不过有两多任务都是在timer事件中执行,分别用不同的计数
来控制,让它们在不同的时间执行。
计数到10000时归零,从头再计。程序运行两三天之后,timer事件就不执行了,以前我也发现过,用源程序跟踪时发现enable为true,
Interval的值也没变。当时猜测问题可能是程序中用的timer控件太多,于是把所有timer控件的任务整合到一个timer里面,后来这个问题就解
决了.不过这个程序timer的Interval值比较大是200ms,现在把timer的Interval值改为20ms,就出现现在的问题了,运行两三天timer就停止
了!是不是Interval的值太小了的原因?
'公共模块变量
Public timerCnt As Integer '时钟到时计数次数
Public TimeOfSinglePathAnser As Long
'初始化
TimeOfSinglePathAnser = rs!SinglePT
TimeOfSinglePathAnser = TimeOfSinglePathAnser \ 20 '整除
timer控件的Interval值为20 , timer事件每执行一次, 计数变量加1, 当计数变量等于10000时, 归0
Private Sub Timer1_Timer()
Dim tc As Integer '
timerCnt = timerCnt + 1 '计数变量加1
If timerCnt Mod 50 = 0 Then
'执行任务1
End If
If timerCnt Mod (TimeOfSinglePathAnser + 5) = 0 Then
'执行任务2
End If
If timerCnt Mod TimeOfSinglePathAnser = 0 Then
'执行任务3
End If
If timerCnt Mod 501 = 0 Then
'执行任务4
End If
If timerCnt Mod 52 = 0 Then
'执行任务5
End If
If timerCnt Mod 3253 = 0 Then
'执行任务6
End If
If timerCnt Mod 104 = 0 Then
'执行任务7
End If
'当计数变量等于10000时,归0
timerCnt = timerCnt Mod 10000
End Sub 展开
1个回答
展开全部
没看明白~~
如果200ms可以,那么20ms肯定也可以!
你应该把有关的源程序贴出来,这样比你说的要清楚
如果200ms可以,那么20ms肯定也可以!
你应该把有关的源程序贴出来,这样比你说的要清楚
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询