首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

Timer控件,CUP占用率很高,该如何处理

2012-04-21 
Timer控件,CUP占用率很高我程序中需要不停的通过串口读取重量,我就用了一个timer控件,不停的去读。timer的i

Timer控件,CUP占用率很高
我程序中需要不停的通过串口读取重量,我就用了一个timer控件,不停的去读。timer的interval=1000.结果发现cup的占用率很高,都快要到100%了。请问有什么其它的办法吗?
 Private Sub GetWeight()'得到重量
  If m_Type = "R-22" Then
  m_Weight = (Plc_Wr("1", "D62") / 10) & "00"

  ElseIf m_Type = "R-134a" Then
  m_Weight = (Plc_Wr("1", "D64") / 10) & "00"
  End If

  End Sub

'在timer中不停的读取重量,并显示进度条。
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick

  Me.Invoke(New EventHandler(AddressOf GetWeight))
  txtAddVolume.Text = m_Weight
  If Me.ProgressBar1.Value < Int(Val(txtTotalVolume.Text)) Then
  AddVolume += 1
  txtAddVolume.Text = AddVolume
  txtPercent.Text = Str(Math.Round(Val(AddVolume) / Int(Val(txtTotalVolume.Text)) * 100)) + "%"
  Me.ProgressBar1.Value = Val(AddVolume)
  Else
   
  StopFreon(m_Area, m_Gongwei, m_Type)
  Me.Timer2.Enabled = False
  MsgBox("运行结束", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "结束")
  Me.Close()
  End If
  End Sub

[解决办法]
timer控件本身cpu占不了多少,关键是每步执行过程占用了多少cpu
我做游戏都是20毫秒刷新一次,绘制游戏画面、碰撞处理、逻辑处理,也没见卡

你要做的是把读取串口什么的代码优化,使其在20毫秒内能够运行完毕,这样就感觉不到卡了

热点排行