【发布时间】:2020-06-08 16:36:11
【问题描述】:
The existing question 建议CurrentClockSpeed,但在我的系统中,它只返回与MaxClockSpeed 相同的值。下面的代码一遍又一遍地打印出相同的两个值。
Task.Run(() =>
{
ManagementObject Mo = new ManagementObject("Win32_Processor.DeviceID='CPU0'");
while (true)
{
Debug.WriteLine("Max=" + Mo["MaxClockSpeed"] + ", Current=" + Mo["CurrentClockSpeed"]);
System.Threading.Thread.Sleep(1000);
}
Mo.Dispose(); //return and such later in the code
});
但所有其他应用程序,如任务管理器、CPU-Z、硬件信息等,都显示可变时钟速度。也就是说,如果我运行一个使用 100% CPU 的进程,速度就会提高,如果我终止该进程,它就会下降。我怎样才能得到那个值?
我的意思是,例如,我在 Google 搜索中找到的屏幕截图的“速度”部分中的值。不是永远不变的“最大速度”值。
【问题讨论】:
-
你看过this的相关帖子吗?
-
@AxelKemper 也许就是这样。似乎
cpuCounter.NextValue()正在返回基本时钟速度的百分比。当我测试它时,它从大约 100 变为大约 110。