为什么用VB做的软件占用CPU太高??

来源:百度知道 编辑:UC知道 时间:2024/06/28 20:00:28
我在里面用倒了串口接收数据,但是一打开串口收集数据,它就开始占用CPU%90以上,程序
Private Sub MSComm1_OnComm()

Dim TMP As String
Dim TEM1, TEM2 As Byte

Select Case MSComm1.CommEvent
Case comEvReceive
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 2
TEM1 = MSComm1.Input(0)
TEM2 = MSComm1.Input(0)
MSComm1.InBufferCount = 0
TMP = TEM2 + TEM1 / 100
'Next i

Text1.Text = TMP + "℃"
'Text1.Text = "摄氏度"
End Select
End Sub

是不是数据运算导致的啊 ??

并不是所有VB做的软件CPU占用都高,关键在于你写的代码。

循环很占资源,DoEvents同样。

试试把DoEvents改为If GetInputState Then DoEvents

*要先声明Private Declare Function GetInputState Lib "user32" () As Long

一个简单的温度接收没有必要写这么复杂,通讯协议没有定好,建议你重新确定通讯协议!!

有问题可以发消息给我!

一楼正!在解释一下
通过 DoEvents 放弃控制的事件过程,有时可能希望防止在DoEvents 返回之前重新调用这一过程。否则将无穷无尽地调用该过程,直到系统资源消耗殆尽。可暂时禁止控件,或使用一个静态的“标志”变量防止此事发生。

DoEvents 导致的