gpt4 book ai didi

c# - 控制 CPU 利用率

转载 作者:可可西里 更新时间:2023-11-01 14:14:16 31 4
gpt4 key购买 nike

在运行时如何控制 cpu 利用率是明智的?

轮询 CPU 负载并插休眠眠?

最佳答案

我会推荐操作系统功能。 Windows 上有性能计数器和 WinAPI 函数。

这是一个使用来自 BCL Team Blog性能计数器 的示例:

foreach (Process proc in Process.GetProcesses()) {
using (PerformanceCounter pcProcess = new PerformanceCounter("Process", "% Processor Time", proc.ProcessName)) {
pcProcess.NextValue();
System.Threading.Thread.Sleep(1000);
Console.WriteLine("Process:{0} CPU% {1}", proc.ProcessName, pcProcess.NextValue());
}
}

此代码与来自 CodeProjectWMI 相同:

public string GetCPU()
{
decimal PercentProcessorTime=0;
mObject_CPU.Get();

ulong u_newCPU =
(ulong)mObject_CPU.Properties["PercentProcessorTime"].Value;
ulong u_newNano =
(ulong)mObject_CPU.Properties["TimeStamp_Sys100NS"].Value;
decimal d_newCPU = Convert.ToDecimal(u_newCPU);
decimal d_newNano = Convert.ToDecimal(u_newNano);
decimal d_oldCPU = Convert.ToDecimal(u_oldCPU);
decimal d_oldNano = Convert.ToDecimal(u_oldNano);

// Thanks to MSDN for giving me this formula !

PercentProcessorTime =
(1 - ((d_newCPU-d_oldCPU)/(d_newNano - d_oldNano)))*100m;

// Save the values for the next run

u_oldCPU = u_newCPU;
u_oldNano = u_newNano;

return PercentProcessorTime.ToString("N",nfi);;
}

因此您可以查询这些操作系统供应商(或其他供应商的操作系统)并在处理器利用率高时让您的线程休眠。

关于c# - 控制 CPU 利用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/261089/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com