C# 多线程造成CPU占用率高解决办法
生活随笔
收集整理的這篇文章主要介紹了
C# 多线程造成CPU占用率高解决办法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在C#開發中我們難免會用到多線程操作,而且很多時候需要開啟多個線程一直監視某個狀態,當線程多的時候就會造成CPU內存占用率過高。電腦配置低的根本吃不消。
private void button1_Click(object sender, EventArgs e){Thread TH1, TH2, TH3, TH4, TH5;TH1 = new Thread(Thread1){IsBackground = true};TH2 = new Thread(Thread2){IsBackground = true};TH3 = new Thread(Thread3){IsBackground = true};TH4 = new Thread(Thread4){IsBackground = true};TH5 = new Thread(Thread5){IsBackground = true};TH1.Start();TH2.Start();TH3.Start();TH4.Start();TH5.Start();}public void Thread1(){while (true) ;}public void Thread2(){while (true) ;}public void Thread3(){while (true) ;}public void Thread4(){while (true) ;}public void Thread5(){while (true) ;}比如上面這段代碼,我們先看為運行前CPU的占用率。
這是很低的,而當我運行上面的代碼后,一下子就達到了100%。這肯定是不行的。
解決方法:
只要我們上每個線程岔開時間執行即可,我們在每一段循環中架伊爾thread。sleep(1),讓線程休眠等待。看看效果吧。
public void Thread1(){while (true)Thread.Sleep(1);}public void Thread2(){while (true)Thread.Sleep(1);}public void Thread3(){while (true)Thread.Sleep(1);}public void Thread4(){while (true)Thread.Sleep(1);}public void Thread5(){while (true)Thread.Sleep(1);}仍然還是很低,一般的電腦運行起來都毫無壓力。
這是我的一點心得,如有不妥的地方,歡迎指正哦!
總結
以上是生活随笔為你收集整理的C# 多线程造成CPU占用率高解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 易周金融 | Q1手机银行活跃用户规模6
- 下一篇: Hatree-Fork单粒子格林函数计算