public void TrackP(Process p, EntityViewModel viewModel) { string instanceName = GetProcessInstanceName(p.Id); PerformanceCounter memCounter = new PerformanceCounter { CategoryName = "Process", CounterName = "Working Set - Private", InstanceName = instanceName }; Thread t = new Thread(() => { while (!interrupted && !p.HasExited) { try { viewModel.MemValueUpdate(memCounter.NextValue() / (1024 * 1024)); } catch (Exception e) { break; } Thread.Sleep(500); } viewModel.MemValueUpdate(0.0); viewModel.MemValueUpdate(0.0); viewModel.MemValueUpdate(0.0); }); t.Start(); threads.Add(t); }
public void TrackP(Process p, EntityViewModel viewModel) { //TODO this is not working with Java 15 bc of subprocess spawned Task.Run(async() => { while (!interrupted == !p.HasExited) { try { p.Refresh(); viewModel.MemValueUpdate(p.WorkingSet64 / (1024d * 1024d)); await Task.Delay(500); } catch { break; } } viewModel.MemValueUpdate(0.0); viewModel.MemValueUpdate(0.0); viewModel.MemValueUpdate(0.0); }); }