1. 程式人生 > >c#Winform程式CPU佔用高的原因和解決方法

c#Winform程式CPU佔用高的原因和解決方法

程式CPU佔用高的可能原因:

1、存在死迴圈;

  • 為什麼死迴圈會導致CPU佔用高呢?
      雖然分時作業系統是採用時間片的機制對CPU的時間進行管理的,也就是說到了一定時間它會自動從一個程序切換到下一個程序。但是,當進入別的程序後,若該程序告訴系統它現在不需要做什麼,不需要那麼多的時間,這個時候,系統就會切換到下一個程序,當切換到死迴圈所在程序後,由於它一直在迴圈,永遠告訴系統它有事情做(實質僅在死迴圈,沒做任何事),那麼系統就儘可能的將其他程序省下了的時間讓它做死迴圈了,CPU佔用不高才怪咧。
  • 解決方法:在死迴圈中新增“Thread.sleep(1);”,如下所示:
while(true)
{
  if(進入條件)
 {
    //該模組處理語句
  }
  else
  {
    Thread.sleep(1);
  }
}

2、高頻率的IO操作。

PS:未寫完,後續會補充。