簡體   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