我正在開發一個C#程序,並且我有一個消耗太多CPU的函數。我想知道一種方法來通過代碼(而不是任何外部應用程序)來控制它,並限制CPU使用率。 例如,如果它使用90%的CPU使用率,使我的應用程序僅消耗20%,即使速度變慢。它必須自動完成並從應用程序內完成。 如果你提供一堂課,那會很棒。如何限制C#程序的CPU使用率?
11
A
回答
16
我不知道你是否可以這樣做,但可以通過Priority屬性更改執行線程的線程優先級。你可以通過以下方式設置:
Thread.CurrentThread.Priority = ThreadPriority.Lowest;
另外,我不認爲你真的想要限制它。如果機器處於閒置狀態,您希望它忙於處理任務,對吧? ThreadPriority可幫助將此信息傳遞給調度程序。
0
您可以通過調用循環內的Thread.Sleep(毫秒)來減慢循環。這將CPU交給調度器。
但是'消耗太多的CPU'讓我覺得你可能有更多的基本問題。這個線程是否輪詢並等待其他事情?如果是這樣,你應該考慮使用事件或其他基於內核的信號機制。
0
我想你需要查詢某種操作系統API來了解你有多少CPU正在使用,並從中進行節流決定(如Thread.Sleep)。
相關問題
- 1. C#限制線程的CPU使用率
- 2. 如何限制Android的CPU使用率?
- 3. 如何限制CPU使用率?
- 4. 如何限制FFMpeg CPU使用率?
- 5. 設置應用程序的資源限制(CPU使用率)
- 6. 限制Java應用程序的內存和CPU使用率
- 7. 如何限制節點進程的CPU和內存使用率
- 8. 如何限制一個進程的CPU使用率
- 9. 使用Cgroups限制CPU使用率
- 10. 限制Runtime.getRuntime()的CPU使用率exec
- 11. Python - 限制腳本的CPU使用率
- 12. 限制fwrite操作的CPU使用率
- 13. 如何在c#中優化或限制CPU使用率的壓縮過程(DotNetZip)?
- 14. 限制Caffe CPU內核使用率?
- 15. 多重 - 限制CPU使用率
- 16. cgroups限制總CPU使用率
- 17. 限制C#.NET 1.1中Ticker組件的CPU使用率
- 18. 是否可以限制外部進程的CPU使用率?
- 19. 故意限制只有一個線程的CPU使用率
- 20. 線程c中的CPU使用率高#
- 21. 如何強制最大CPU使用率
- 22. 簡單程序的高CPU使用率
- 23. 測量程序的CPU/RAM使用率
- 24. 限制Web Worker CPU利用率?
- 25. SlimDX:限制幀速率以降低CPU使用率
- 26. ASP.NET應用程序和CPU使用率
- 27. 100%CPU使用率ASP.NET應用程序
- 28. MongoDB限制集合複製和非常高的CPU使用率
- 29. 如何在Windows上限制進程的CPU使用率? (需要代碼,而不是應用程序)
- 30. 如何控制OS X上的應用程序的CPU使用率?
這聽起來像一個柺杖:攻擊症狀而不是問題。你爲什麼不發佈該方法試圖做什麼,並要求我們幫助優化該方法。 – 2008-10-30 18:35:37
它可能是一個柺杖,但我可以想到這個想法的幾個應用程序,例如:一個CPU綁定的背景任務來緊縮數字,辦公室PC的分佈式計算環境中的一個節點,一個人工智能程序來監視和向我學習使用習慣。 – 2008-10-30 19:22:16