我希望代码等到CPU使用率下降到60%以下

问题描述 投票:0回答:1

以下代码用于测量CPU%使用。

Public Sub Macro1() Dim strComputer As String Dim objWMIService As Object Dim colItems As Object Dim objItem As Object strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfOS_Processor", , 48) For Each objItem In colItems Debug.Print objItem.PercentProcessorTime Next End Sub
我从此链接中获得了上述代码:
https://analystcave.com/excel-measuring-cpu-usage-in-vba-and-vba-and-other-performance-metrics/#comment-184350

. 我希望代码等到CPU使用率下降到60%以下。 您可以尝试这样的事情:

(我可能也会在其中放一个睡眠(),以帮助将其旋转以快速减少) Sub Test() Debug.Print "Starting" Call PauseWhileBusy Debug.Print "Done" End Sub Sub PauseWhileBusy(Optional ByVal lMaxPercent As Long = 60, Optional ByVal strComputer As String = ".") Dim colItems As Object Dim objItem As Object Dim bTooBusy As Boolean With GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Do Set colItems = .ExecQuery("Select * from Win32_Processor") For Each objItem In colItems Debug.Print "Current Load:", objItem.LoadPercentage bTooBusy = objItem.LoadPercentage > lMaxPercent Next DoEvents Loop While bTooBusy End With End Sub

vba cpu wmi do-while
1个回答
1
投票
您可以通过运行一个

环路来实现这一目标,该

环连续检查CPU的使用情况,并且仅在降至60%以下时才退出。为了防止在等待时过度使用CPU,您应该使用

Sleep

在支票之间引入少量延迟,并保持系统响应。
	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.