private void _timer_Tick(object sender, EventArgs e) { if (_updating) { return; } _updating = true; try { foreach (var pair in _sensors) { if (!_labels.TryGetValue(pair.Key, out var indicator)) { indicator = new SensorIndicator(pair.Key); _labels.Add(pair.Key, indicator); _panel.Controls.Add(indicator); } indicator.Update(pair.Value.Value, pair.Value.Diff); } Text = $"{nameof(MonitorApp)}: {PerfMonitor.GetValuesPerSecond():F3}"; } finally { _updating = false; } }
private void ClientContextOnMessage(object sender, MessageArgs messageArgs) { PerfMonitor.ValuesPerSecondIncrement(); #if DEBUG Trace.WriteLine($"{messageArgs.SensorId}: {messageArgs.Value}"); #endif // sender used for ClientContext (mainly TcpClient) info Message?.Invoke(sender, messageArgs); }