繁体   English   中英

如何在 C# 中减少我的应用程序的 memory 使用

[英]How to reduce the memory usage of my app in C#

我正在构建一个小程序来检查资源监视器是否打开,如果是,则关闭它。

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"))
        { 
             ... 
        }
    }
}

问题是它占用了我近 30% 的 CPU 性能,那么如何降低 CPU 使用率呢?

我也尝试添加其他程序,如任务列表和任务管理器,但没有奏效,你有什么想法吗?

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("");
}
}

在您的 while 循环中放置一个Sleep()

System.Threading.Thread.Sleep(1000);

您的程序会不断检查您 PC 上的所有进程。 如果这样做,每秒只有一次,那就绰绰有余了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM