private void Start()
        {
            if (_refreshTimer == null)
            {
                _refreshTimer = new DispatcherTimer {
                    Interval = TimeSpan.FromSeconds(1)
                };
                _refreshTimer.Tick += RefreshTimerOnTick;
            }
            _refreshTimer.Start();
            _cpuUsageMonitor = new CpuUsageMonitor();
            _lastDataUpdate  = DateTime.UtcNow;

            if (Packages == null)
            {
                Packages = new FastObservableCollection <PackageInformation>();
            }
            else
            {
                Packages.Add(new PackageInformation
                {
                    Description = "Activity logging started",
                    Timestamp   = DateTime.Now
                });
            }

            _brakingCollectionManager = new BrakingCollectionManager <PackageInformation>(Packages);

            _connectionManager.PackageReceived += ConnectionManagerOnPackageReceived;
            _connectionManager.PackageSent     += ConnectionManagerOnPackageSent;
        }
        private void Stop()
        {
            _refreshTimer.Stop();

            _cpuUsageMonitor.Dispose();
            _cpuUsageMonitor = null;

            _connectionManager.PackageReceived -= ConnectionManagerOnPackageReceived;
        }
Пример #3
0
        static async Task Main(string[] args)
        {
            IConfiguration config = new ConfigurationBuilder()
                                    .AddJsonFile("config.json", true, true)
                                    .Build();
            var monitor = new CpuUsageMonitor(config["processName"]);

            monitor.UsageUpdate += Monitor_UsageUpdate;
            monitor.Start();

            await Task.Delay(10 * 1000);
        }