C# 获取CPU每个核心的温度
时间: 2024-10-24 17:06:19 浏览: 27
在C#中获取CPU每个核心的温度通常需要借助第三方库,因为Windows API并不直接提供这种功能。你可以使用`ManagementClass`和`ManagementObjectSearcher`来查询硬件信息,例如通过WMIC(Windows Management Instrumentation Command-line)命令行工具,或者使用一些开源库如`HWMonitor.NET`、`AdvancedSystemInfo`等。
下面是一个基本的示例,展示如何使用`ManagementObjectSearcher`从WMIC获取系统温度:
```csharp
using System;
using System.Management;
public class CPUTemperatureReader
{
public static void Main()
{
try
{
// 查询处理器温度
ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_Processor");
foreach (ManagementObject obj in searcher.Get())
{
string name = obj.Properties["Name"].Value.ToString();
double temperature = Convert.ToDouble(obj.Properties["CurrentTemperature"].Value);
Console.WriteLine($"Core {name}: {temperature}°C");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error reading CPU temperatures: {ex.Message}");
}
}
}
```
这个例子会列出所有处理器的核心及其当前温度。然而请注意,这种方法可能不会提供每个核心精确到度的温度,有些情况可能会返回平均值或者单个芯片的温度。
阅读全文