예제 #1
0
        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;
            }
        }
예제 #2
0
        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);
        }