Beispiel #1
0
        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);
        }
Beispiel #2
0
 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);
     });
 }