コード例 #1
0
        protected override void Subscribe(ParameterValues configParameters)
        {
            var initialMetrics = MemoryMetricsClient.GetMetrics();
            var minValue       = new IntParameterValue(_ProgressBarView.Min, 0);
            var maxValue       = new IntParameterValue(_ProgressBarView.Max, (int)initialMetrics.Total);
            var value          = new IntParameterValue(_ProgressBarView.Value, (int)initialMetrics.Used);

            OnControlChanged(new ParameterValues()
            {
                minValue, maxValue, value
            });

            if (_Timer == null)
            {
                _Timer          = new Timer(1000);
                _Timer.Elapsed += (s, a) =>
                {
                    var metrics = MemoryMetricsClient.GetMetrics();
                    OnControlChanged(new ParameterValues()
                    {
                        new IntParameterValue(_ProgressBarView.Value, (int)metrics.Used)
                    });
                };

                _Timer.Start();
            }
        }
コード例 #2
0
        protected override void Subscribe(ParameterValues configParameters)
        {
            _LastUsage = CpuUsage.GetByProcess();
            _LastTicks = DateTime.UtcNow.Ticks;


            var minValue = new IntParameterValue(_ProgressBarView.Min, 0);
            var maxValue = new IntParameterValue(_ProgressBarView.Max, 100);
            var value    = new IntParameterValue(_ProgressBarView.Value, 0);

            OnControlChanged(new ParameterValues()
            {
                minValue, maxValue, value
            });

            if (_Timer == null)
            {
                _Timer          = new Timer(1000);
                _Timer.Elapsed += (s, a) =>
                {
                    var usage             = CpuUsage.GetByProcess();
                    var ticks             = DateTime.UtcNow.Ticks;
                    var usageDiff         = (usage - _LastUsage).Value.TotalMicroSeconds / 1000d;
                    var totalMicroSeconds = (ticks - _LastTicks) / 10000d;
                    var usagePercent      = usageDiff / totalMicroSeconds * 100;
                    OnControlChanged(new ParameterValues()
                    {
                        new IntParameterValue(_ProgressBarView.Value, Math.Min(100, (int)usagePercent))
                    });
                    _LastUsage = usage;
                    _LastTicks = ticks;
                };

                _Timer.Start();
            }
        }