Exemplo n.º 1
0
        private static void Main(string[] args)
        {
            var t = new Core.TaskManager();
            t.CpuLoadChanged += Console.WriteLine;

            Console.ReadLine();
            t.Dispose();
            Console.ReadLine();
        }
Exemplo n.º 2
0
        public MainViewModel()
        {
            _taskManager = new Core.TaskManager();
            var scheduler = TaskScheduler.FromCurrentSynchronizationContext();

            AppS =
                new ObservableCollection<ProcessViewModel>(
                    _taskManager.GetAllProcesses()
                        .Where(info => info.IsWithWindow)
                        .Select(info => new ProcessViewModel(info)));
            Processes =
                new ObservableCollection<ProcessViewModel>(
                    _taskManager.GetAllProcesses().Select(info => new ProcessViewModel(info)));

            _taskManager.CpuLoadChanged += cpuLoadChanged => { CpuLoadInPrecent = cpuLoadChanged; };

            _taskManager.ProcessRemoved += processId =>
            {
                new Task(() =>
                {
                    AppS.Remove(AppS.FirstOrDefault(process => process.ProcessId == processId));
                    Processes.Remove(Processes.FirstOrDefault(process => process.ProcessId == processId));
                }).Start(scheduler);
            };

            _taskManager.ProcessAdded += processId =>
            {
                var processToAdd = _taskManager.GetProcessById(processId);
                if (processToAdd != null)
                {
                    new Task(() =>
                    {
                        var processViewModel = new ProcessViewModel(processToAdd);
                        if (processViewModel.IsWithWindow)
                        {
                            AppS.Add(processViewModel);
                        }
                        else
                        {
                            Processes.Add(processViewModel);
                        }
                    }).Start(scheduler);
                }
            };
        }