контекст: < /strong>
У меня есть сервис C# (.NET Framework 4.8), и я хочу добавить мониторинг температуры.
для этого я добавил (в ссылке) GetCoreTempinFonet DLL в моей службе (мы решили использовать GetCoreTempinfonet, потому что мы уже используем другие приложения, но не для обслуживания) < /p>
. : < /strong>
Я могу запустить свое обслуживание в режиме отладки или в консоли для тестирования, и у меня нет проблем с температурой. Однако, когда я запускаю его обычно в качестве службы, значение составляет 0.
контекст: < /strong> У меня есть сервис C# (.NET Framework 4.8), и я хочу добавить мониторинг температуры. для этого я добавил (в ссылке) GetCoreTempinFonet DLL в моей службе (мы решили использовать GetCoreTempinfonet, потому что мы уже используем другие приложения, но не для обслуживания) < /p>
. : < /strong> Я могу запустить свое обслуживание в режиме отладки или в консоли для тестирования, и у меня нет проблем с температурой. Однако, когда я запускаю его обычно в качестве службы, значение составляет 0.[code]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; }