C# 读取CPU 温度
时间: 2024-10-24 07:06:12 浏览: 20
在C#中直接读取CPU温度可能会比较复杂,因为这通常涉及到底层硬件操作,而.NET Framework并不直接提供这样的功能。然而,你可以借助第三方库或操作系统提供的API来间接获取。一种常见的方法是在Windows平台上使用ManagementObjectSearcher查询“环境”类中的“处理器”属性,并从中获取有关CPU温度的信息。
以下是一个简化的示例,使用`ManagementObjectSearcher`和`ManagementBaseObject`来获取CPU温度,但请注意,这可能因系统版本或可用资源而变化:
```csharp
using System.Management;
public static class CPUTemperatureReader
{
public static double GetCPUTemperature()
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher(
"SELECT * FROM Win32_Processor WHERE Name='_Total'",
new QueryOptions { IncludeQualifiers = False });
foreach (ManagementObject obj in searcher.Get())
{
string temperatureString = obj.Properties["CurrentTemperature"].Value.ToString();
return Convert.ToDouble(temperatureString);
}
throw new Exception("Failed to retrieve CPU temperature.");
}
catch (Exception ex)
{
Console.WriteLine($"Error reading CPU temperature: {ex.Message}");
return -1; // 返回无效值或错误处理
}
}
}
// 使用方法:
double cpuTemp = CPUTemperatureReader.GetCPUTemperature();
if (cpuTemp >= 0)
{
Console.WriteLine($"Current CPU Temperature: {cpuTemp}°C");
}
else
{
Console.WriteLine("Unable to fetch CPU temperature.");
}
//
阅读全文