//Обновление процента использования ЦП и памяти. Выполняется в отдельном потоке
 public void RefreshProcessesData(object sender, EventArgs timerArguments)
 {
     //Пока данные процесса обновляются, нельзя его удалять\менять приоритет и так далее
     lock (_processEntitiesCollection)
     {
         for (int i = 0; i < _processEntitiesCollection.Count; i++)
         {
             try
             {
                 ProcessEntity processEntity = _processEntitiesCollection[i];
                 if (processEntity.Process.HasExited)
                 {
                     continue;
                 }
                 processEntity.CpuLoadPercentage = //Использование ЦП
                                                   (float)Math.Round(processEntity.CpuLoadCounter.NextValue(), 2);
                 float t = processEntity.MemUsageCounter.NextValue();
                 processEntity.MemoryMBytesUsage = //Использование ОП
                                                   (float)Math.Round(t / 1024 / 1024, 2);
                 processEntity.MemoryProcent = (float)Math.Round(100 * t / processEntity.TotalMem, 2);
             }
             catch { }
         }
     }
 }
Exemple #2
0
        public void Show(ProcessEntity targetProcess)
        {
            _targetProcess = targetProcess;
            _vdm.setDetails(_targetProcess);

            base.Show();
        }
Exemple #3
0
 public ProcessDetails(ProcessEntity process)
 {
     this._Id        = process.Process.Id;
     this._isEnabled = process.CanUserAccess;
     streamsThread   = new Thread(updateStreams);
     streamsThread.Start();
     modulesThread = new Thread(readMoudeles);
     modulesThread.Start();
 }
Exemple #4
0
 public ProcessDirCommandImplementation(ViewModel vMdl)
 {
     _vMdl          = vMdl;
     _targetProcess = _vMdl.SelectedItem;
 }
Exemple #5
0
 public void setDetails(ProcessEntity process)
 {
     this._Id        = process.Process.Id;
     _processDetails = new ProcessDetails(process);
 }