//Обновление процента использования ЦП и памяти. Выполняется в отдельном потоке 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 { } } } }
public void Show(ProcessEntity targetProcess) { _targetProcess = targetProcess; _vdm.setDetails(_targetProcess); base.Show(); }
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(); }
public ProcessDirCommandImplementation(ViewModel vMdl) { _vMdl = vMdl; _targetProcess = _vMdl.SelectedItem; }
public void setDetails(ProcessEntity process) { this._Id = process.Process.Id; _processDetails = new ProcessDetails(process); }