Exemple #1
0
        private void RefreshListWorker()
        {
            while (!_stopWorkers)
            {
                lock (_syncProcessesUpdates)
                {
                    var actualProcesses = Process.GetProcesses();
                    var toAdd           = actualProcesses
                                          .Where(p => !Processes.Any(pa => pa.ID == p.Id));
                    foreach (var proc in toAdd)
                    {
                        App.Current.Dispatcher.Invoke(() =>
                        {
                            try { Processes.Add(new ProcessAdapter(proc)); } catch (Exception) { }
                        });
                    }
                    var toRemove = Processes.Where(pa => !actualProcesses.Any(p => p.Id == pa.ID));
                    foreach (var proc in toRemove)
                    {
                        App.Current.Dispatcher.Invoke(() =>
                        {
                            Processes.Remove(proc);
                        });
                    }
                    ProcessesChanged.Invoke();
                }

                Thread.Sleep(5000);
            }
        }
Exemple #2
0
 private void RefreshExistingWorker()
 {
     while (!_stopWorkers)
     {
         lock (_syncProcessesUpdates)
         {
             foreach (var pa in Processes)
             {
                 try { pa.Refresh(); } catch (Exception) { }
             }
             ProcessesChanged.Invoke();
         }
         Thread.Sleep(2000);
     }
 }