C#当前时钟速度显示

时间:2018-06-08 13:53:05

标签: c# cpu

我试图让我的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

最诚挚的问候 迪伦

2 个答案:

答案 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)

此信息来自处理器驱动程序,此值不固定。如果你在你的系统上加载了大量的负载,那么再次获取它。与系统空闲相比,您将获得不同的值。希望这些信息对您有用。