I'm building a small program that checks if the resource monitor is open and if so, closes it.
bool a = true;
while (a == true)
{
    foreach (var p in Process.GetProcessesByName("perfmon"))
    {
        Process.Start("taskkill", "/F /IM perfmon.exe");
        // "perfmon" "Taskmgr"
        foreach (var t in Process.GetProcessesByName("taskkill"))
        { 
             ... 
        }
    }
}
The problem is that it takes almost 30% of my CPU performance, so how can I reduce the CPU usage?
Also I tried to add other programs like tasklist and task manager but it didn't work, do you have an idea?
bool a = true;
while (a == true)
{
    System.Threading.Thread.Sleep(1000);
    foreach (var p in Process.GetProcessesByName("Taskmgr"))
    {
        Process.Start("taskkill", "/F /IM Taskmgr.exe");
        // "perfmon" "Taskmgr"
        foreach (var t in Process.GetProcessesByName("taskkill"))
        {
            System.Threading.Thread.Sleep(60000);
            Process b = Process.Start("");
        }
    }
    foreach (var p1 in Process.GetProcessesByName("perfmon"))
    {
        foreach (var t1 in Process.GetProcessesByName("taskkill"))
        {
            System.Threading.Thread.Sleep(60000);
            Process b1 = Process.Start("");
        }
    }
    foreach (var p2 in Process.GetProcessesByName("tasklist"))
    {
        foreach (var t2 in Process.GetProcessesByName("taskkill"))
        {
            System.Threading.Thread.Sleep(60000);
            Process b2 = Process.Start("");
         }
    }
}
 
     
    