static void Main(string[] args) { var processes = Process.GetProcesses(); for (int i = 0; i < 10; i++) { foreach (var p in processes) { currentProcess = p; var counter = ProcessCpuCounter.GetPerfCounterForProcessId(p.Id); if (counter == null) { continue; } else { counter.NextValue(); } Thread.Sleep(200); int memsize = 0; // memsize in Megabyte PerformanceCounter PC = new PerformanceCounter(); PC.CategoryName = "Process"; PC.CounterName = "Working Set - Private"; PC.InstanceName = p.ProcessName; memsize = Convert.ToInt32(PC.NextValue()) / (int)(1024); PC.Close(); PC.Dispose(); var cpu = counter.NextValue() / (float)Environment.ProcessorCount; Console.WriteLine(counter.InstanceName + " - Cpu : % " + cpu + "- Ram : " + memsize); if (cpu >= 5) { aTimer.Elapsed += OnTimedEvent; aTimer.Start(); Console.WriteLine("Cpu Value For " + currentProcess.ProcessName); ProcessLongAlive(currentProcess.ProcessName); break; } } } Console.WriteLine("Any key to exit..."); Console.Read(); }
public static void ProcessLongAlive(string processName) { var processes = Process.GetProcessesByName(processName); for (int i = 0; i < 10; i++) { foreach (var p in processes) { var counter = ProcessCpuCounter.GetPerfCounterForProcessId(p.Id); if (counter == null) { continue; } else { counter.NextValue(); } Thread.Sleep(200); int memsize = 0; // memsize in Megabyte PerformanceCounter PC = new PerformanceCounter(); PC.CategoryName = "Process"; PC.CounterName = "Working Set - Private"; PC.InstanceName = p.ProcessName; memsize = Convert.ToInt32(PC.NextValue()) / (int)(1024); PC.Close(); PC.Dispose(); var cpu = counter.NextValue() / (float)Environment.ProcessorCount; Console.WriteLine(counter.InstanceName + " - Cpu : % " + cpu + "- Ram : " + memsize); if (count > 1) { StopProcess(); } } } }