コード例 #1
0
        private bool NotifyTemperature(ITemperatureObserver observer = null)
        {
            if (_remoteTemperatureMonitor == null)
            {
                return(false);
            }

            if (_remoteTemperatureMonitor.IsServiceReady)
            {
                float?temperature = _remoteTemperatureMonitor.GetAvgCPUsTemperature();
                if (!temperature.HasValue)
                {
                    return(false);
                }

                if (observer == null)
                {
                    lock (_temperatureObservers)
                    {
                        _temperatureObservers.ForEach(obs =>
                                                      obs.OnAvgCPUsTemperatureChanged(temperature.Value));
                    }
                }
                else
                {
                    observer.OnAvgCPUsTemperatureChanged(temperature.Value);
                }

                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #2
0
 public bool RemoveObserver(ITemperatureObserver temperatureObserver)
 {
     if (temperatureObserver == null)
     {
         return(false);
     }
     return(_temperatureObservers.Remove(temperatureObserver));
 }
コード例 #3
0
 public void AddObserver(ITemperatureObserver temperatureObserver)
 {
     if (temperatureObserver != null)
     {
         _temperatureObservers.Add(temperatureObserver);
         NotifyTemperature(temperatureObserver);
     }
 }
コード例 #4
0
        private bool NotifyTemperature(ITemperatureObserver observer = null)
        {
            if (_remoteTemperatureMonitor == null) return false;

            if (_remoteTemperatureMonitor.IsServiceReady)
            {
                float temperature = _remoteTemperatureMonitor.GetAvgCPUsTemperature().GetValueOrDefault();
                if (observer == null)
                {
                    lock (_temperatureObservers)
                    {
                        _temperatureObservers.ForEach(obs =>
                            obs.OnAvgCPUsTemperatureChanged(temperature));
                    }
                }
                else observer.OnAvgCPUsTemperatureChanged(temperature);

                return true;
            }
            else return false;
        }
コード例 #5
0
 public bool RemoveObserver(ITemperatureObserver temperatureObserver)
 {
     if (temperatureObserver == null) return false;
     return _temperatureObservers.Remove(temperatureObserver);
 }
コード例 #6
0
 public void AddObserver(ITemperatureObserver temperatureObserver)
 {
     if (temperatureObserver == null)
     {
         _temperatureObservers.Add(temperatureObserver);
         NotifyTemperature(temperatureObserver);
     }
 }