/// <summary> /// Resets the state. /// </summary> public void Reset() { lock (SyncRoot) { _lastUpdate = null; _lastInfo = null; } }
/// <inheriteddoc /> protected override void OnGetInfo(CultureInfo lang, ref MonitorState state, StringBuilder summary, StringBuilder desc, ref object value, ref DateTimeOffset lastUpdate) { lock (SyncRoot) { var now = _TIME_PROVIDER(this); var lastMonitorUpdate = _lastUpdate; var doUpdate = true; if (lastMonitorUpdate.HasValue) { doUpdate = false; var interval = now - lastMonitorUpdate.Value; if (interval >= _UPDATE_INTERVAL || _UPDATE_INTERVAL <= TimeSpan.Zero) { doUpdate = true; } } IMonitorInfo info; if (doUpdate) { _lastInfo = info = BaseMonitor.GetInfo(lang); _lastUpdate = now; } else { info = _lastInfo; } if (info == null) { return; } state = info.State; summary.Append(info.Summary); desc.Append(info.Description); value = info.Value; lastUpdate = info.LastUpdate; } }