How to get CPU temperature in C#
By FoxLearn 1/14/2025 3:24:43 AM 739
This method is more native to Windows but may not always provide CPU temperature information depending on the system and hardware support.
C# get CPU temperature
Although not every motherboard includes a built-in temperature monitor, you can potentially retrieve this information if it's available through Windows Management Instrumentation (WMI). Specifically, you can query the MSAcpi_ThermalZoneTemperature class, which is commonly used for accessing CPU temperature data on some systems.
Most of the information provided by Win32_TemperatureProbe
comes from the System Management BIOS (SMBIOS). However, real-time temperature readings for the CurrentReading
property cannot be directly extracted from SMBIOS tables.
For example, ManagementObjectSearcher C#
ManagementObjectSearcher searcher = new ManagementObjectSearcher(@"root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature"); ManagementObjectCollection objCollection = searcher.Get(); foreach (ManagementObject obj in objCollection) { double temperature = Convert.ToDouble(obj["CurrentTemperature"].ToString()); temperature = (temperature - 2732) / 10.0; // Convert to Celsius Console.WriteLine($"CPU Temperature: {temperature}°C"); }
This example queries the MSAcpi_ThermalZoneTemperature
class in WMI, which is commonly used to retrieve CPU temperature information on some systems. It converts the temperature from Kelvin to Celsius and prints it.
It's a simple way to retrieve the current temperature of your CPU with C# through the WMI class of Windows.
- How to fix 'Failure sending mail' in C#
- How to Parse a Comma-Separated String from App.config in C#
- How to convert a dictionary to a list in C#
- How to retrieve the Executable Path in C#
- How to validate an IP address in C#
- How to retrieve the Downloads Directory Path in C#
- C# Tutorial
- Dictionary with multiple values per key in C#