Почему данные из Coretempinfo равен 0 с моей службой C#C#

Место общения программистов C#
Ответить
Anonymous
 Почему данные из Coretempinfo равен 0 с моей службой C#

Сообщение Anonymous »

контекст: < /strong>
У меня есть сервис C# (.NET Framework 4.8), и я хочу добавить мониторинг температуры.
для этого я добавил (в ссылке) GetCoreTempinFonet DLL в моей службе (мы решили использовать GetCoreTempinfonet, потому что мы уже используем другие приложения, но не для обслуживания) < /p>

. : < /strong>
Я могу запустить свое обслуживание в режиме отладки или в консоли для тестирования, и у меня нет проблем с температурой. Однако, когда я запускаю его обычно в качестве службы, значение составляет 0.

Код: Выделить всё

Function :
private static void MonitoringTemperature()
{
try
{
Temperatures.RetourTemperaturePC resultatTemperature = Temperatures.TemperaturePC();

if (resultatTemperature != null) tabTemperaturePC.Add(resultatTemperature.valeur);

if (tabTemperaturePC.Count >= 10)
{
List temp = new List(tabTemperaturePC);
temp.Remove(temp.Max());
temp.Remove(temp.Min());
temperaturePC = (int)temp.Average();

while (tabTemperaturePC.Count > 10)
tabTemperaturePC.RemoveAt(0);
}

InitParameters initParam = InitParameters.Load();

if (temperaturePC >= initServ.WarningTemperature
&& temperaturePC < initServ.AlarmTemperature && !warningTempTriggered)
{
alarmTempTriggered = false;
warningTempTriggered = true;
Debug($"Warning the temperature of PC is high ({temperaturePC.ToString("0 °C")})");
}
else if (temperaturePC > initServ.AlarmTemperature && !alarmTempTriggered)
{
alarmTempTriggered = true;
Debug($"Alarm the temperature of PC is too high ({temperaturePC.ToString("0 °C")})");
}
else
{
if (temperaturePC < initParam.WarningTemperature)
warningTempTriggered = false;

if (temperaturePC < initParam.AlarmTemperature)
alarmTempTriggered = false;
}
}
catch (Exception ex)
{
Debug($"Error while temperature monitoring : {ex}");
}
}

Class :
public static class Temperatures
{
public class RetourTemperaturePC
{
public int valeur;
public int seuil;
}

public static RetourTemperaturePC TemperaturePC()
{
RetourTemperaturePC resultat = new RetourTemperaturePC();
resultat.valeur = 0;
resultat.seuil = 0;
CoreTempInfo CTInfo = new CoreTempInfo();
bool bReadSuccess = CTInfo.GetData();
if (bReadSuccess)
{
resultat.valeur = (int)CTInfo.GetTemp[0];
resultat.seuil = (int)CTInfo.GetTjMax[0];
}
return resultat;
}

public static double ConversionFtoC(double temperature)
{
return (temperature - 32) / 1.8;
}

public static double ConversionCtoF(double temperature)
{
return (temperature * 1.8) + 32;
}
}
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/797 ... rp-service
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»