Cyc*_*one 2 vb.net limit cpu-usage while-loop
你如何限制while循环的CPU?
在这种情况下,while循环内部的代码:
Private Sub wait(ByVal time)
Dim sw As New Stopwatch
sw.Start()
Do While sw.ElapsedMilliseconds < time And StillOpen = True
Application.DoEvents()
Loop
sw.Stop()
End Sub
Run Code Online (Sandbox Code Playgroud)
但现在,这是问题所在.这个循环允许while循环每秒运行一次,每秒一次,并且waitsub正在导致这个延迟,正如它应该的那样.
如何限制占用的CPU?出于某种原因,我的任务经理表示它需要50个CPU来运行这个简单的任务,但它应该不会超过1或2.虽然经理说它占用了那么多的CPU,但我的计算机速度并没有受到影响所有这些都是奇怪的,因为它是一台已有两年历史的笔记本电脑.
我不希望任何用户对此感到恐惧,但是知道这些天人们是怎样的......
无论如何,语言是vb.net.有人可以帮帮我吗?
谢谢!
编辑:澄清一下,该代码不在while循环本身内,但调用子程序是,即 wait(1000)
你总是可以在循环的迭代之间执行某种睡眠......
我不熟悉VB.NET,但持续100-200ms可能足以降低CPU使用率.
例如:
Do while (...)
Application.blah();
System.Threading.Thread.Sleep(150);
End
Run Code Online (Sandbox Code Playgroud)
编辑经过一些研究,我认为你想要的功能是:System.Threading.Thread.Sleep()
| 归档时间: |
|
| 查看次数: |
12522 次 |
| 最近记录: |