我试图让我的c#应用程序显示我当前的CPU时钟速度。虽然在任务管理器中时钟速度更高或更低,但速度仍然有效。这是我的代码:
ManagementObjectSearcher ClockSpeedSearch = new
ManagementObjectSearcher("select CurrentClockSpeed from Win32_Processor");
foreach (var item in ClockSpeedSearch.Get())
{
var clockSpeed = (uint)item["CurrentClockSpeed"];
CPUClockSpeed.Invoke((MethodInvoker)(() => CPUClockSpeed.Text = "CPU Clock Speed: " + clockSpeed + "Mhz"));
}
时钟速度保持在2808Mhz并且不会改变......任何人都可以帮我解决这个问题吗?
更新 我发现了我必须做的事情,但现在我得到System.InvalidOperationException:类别不存在错误。看我的截图 here
最诚挚的问候 迪伦
答案 0 :(得分:0)
我的猜测是这些信息不会经常更新(如果在BIOS之后)。
此页面:https://msdn.microsoft.com/en-us/library/aa394373%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396(搜索CurrentClockSpeed)建议信息来自System Management BIOS
处理器的当前速度,以MHz为单位。
此值来自SMBIOS信息中处理器信息结构的当前速度成员。
答案 1 :(得分:0)
此信息来自处理器驱动程序,此值不固定。如果你在你的系统上加载了大量的负载,那么再次获取它。与系统空闲相比,您将获得不同的值。希望这些信息对您有用。