Как получить температуру процессора - C#

Узнай цену своей работы

Формулировка задачи:

Как получить температуру процессора?

Решение задачи: «Как получить температуру процессора»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Management;
 
 
 
namespace CPUTemperature
{
    public struct Temperature
    {
        public readonly bool Active;
        public readonly uint[] ActiveTripPoint;
        public readonly uint ActiveTripPointCount;
        public readonly uint CriticalTripPointRaw;
        public readonly uint CurrentTemperatureRaw;
        public readonly string InstanceName;
 
        public Temperature(bool active, uint[] activeTripPoint, uint activeTripPointCount, uint criticalTripPointRaw, uint currentTemperatureRaw, string instanceName) : this()
        {
            Active = active;
            ActiveTripPoint = activeTripPoint;
            ActiveTripPointCount = activeTripPointCount;
            CriticalTripPointRaw = criticalTripPointRaw;
            CurrentTemperatureRaw = currentTemperatureRaw;
            InstanceName = instanceName;
        }
 
        public double CriticalTripPoint
        {
            get { return CriticalTripPointRaw*0.1 - 273.15; }
        }
 
        public double CurrentTemperature
        {
            get { return CurrentTemperatureRaw*0.1 - 273.15; }
        }
 
        public static IEnumerable<Temperature> Instances
        {
            get
            {
                var searcher = new ManagementObjectSearcher(@"root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature");
                return from ManagementObject obj in searcher.Get()
                       select new Temperature((bool) obj["Active"], (uint[]) obj["ActiveTripPoint"], (uint) obj["ActiveTripPointCount"],
                                              (uint) obj["CriticalTripPoint"], (uint) obj["CurrentTemperature"], (string) obj["InstanceName"]);
            }
        }
 
        public override string ToString()
        {
            return string.Format("Active: {0}, ActiveTripPoint: [{1}], ActiveTripPointCount: {2}, InstanceName: {3}, CriticalTripPoint: {4}, CurrentTemperature: {5}",
                                  Active, string.Join(", ", ActiveTripPoint), ActiveTripPointCount, InstanceName,
                                  CriticalTripPoint, CurrentTemperature);
        }
    }
 
    class MyClass
    {
        static void Main(string[] args)
        {
            foreach (var temperature in Temperature.Instances)
            {
                Console.WriteLine(temperature);
                Console.WriteLine();
            }
        } 
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5
Похожие ответы