Timer1——Interval=500
vb的问题,我用的mscomm控件,需要用一个timer控件,间隔时间1s,在timer控件中循环执行下面代码六次。
循环执行六次然后cpu就特别高,达到100%了,这是为什么呢?
我查看了循环执行六次程序代码:
Dim inbyte8() As Byte
Dim yanzheng12 As String
Dim com(7) As Byte
com(0) = 136
com(1) = com(0)
com(2) = 82
com(3) = 1
com(4) = 0
com(5) = 0
com(6) = 90
com(7) = 1
MSComm1.CommPort = 1
MSComm1.PortOpen = True
MSComm1.Settings = "4800,n,8,2"
MSComm1.InputMode
comInputModeBinary
MSComm1.Output = com
Dim t As Single
t = Timer
While Timer < t + 0.2
DoEvents
Wend
inbyte8 = Form1.MSComm1.Input
yanzheng12 = inbyte8
最后我将下列:
MSComm1.CommPort = 1
MSComm1.PortOpen = True
MSComm1.Settings = "4800,n,8,2"
MSComm1.InputMode
comInputModeBinary
这些移到form_load()
里面去再测试了下,问题解决。
扩展资料:
先看一段代码:
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Me.Timer1.Enabled = False
MessageBox.Show("测试")
End Sub
对于VB.NET初学者,一般会认为在执行“ Me.Timer1.Enabled = False”语句后,Timer1_Tick过程就会中断并跳出Sub,之后不会弹出"测试"对话框,这其实是错误的,本段代码会弹出"测试"对话框。
步骤1中的代码只是对这一问题进行的最简单的说明,当Timer1_Tick过程代码有多行时,特别是逻辑关系比较复杂时,一定要注意这一点,以防止出现逻辑错误。步骤1中的代码如果不想弹出"测试"对话框,可以将代码修改为如下所示:
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Me.Timer1.Enabled = False
Exit Sub
MessageBox.Show("测试")
End Sub
上述就是VB.NET中Timer控件使用过程容易出错的地方之一。
timer1是一个计时器控件,名称为time1interval是计时器间隔属性1000单位为毫秒,即为秒。该表达式指定,计时器的触发事件,每秒钟将执行一次。
Inerval=1000就是一秒触发一次 这个单位是毫秒
1000毫秒就是一秒
另外当然enable=true 如果不可用也没意义啦
D) Timer1.Interval=500
Timer 的Interval以毫秒为单位,事实上这控件无法精确到一毫秒。一般只能精确到100毫秒,要写十分精确的程序,不能用这个控件
D) Timer1.Interval=500
Timer 的Interval以毫秒为单位,事实上这控件无法精确到一毫秒。一般只能精确到100毫秒,要写十分精确的程序,不能用这个控件
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。