![](/img/trans.png)
[英]How can I optimize or limit the CPU usage a zip process (DotNetZip) in c#?
[英]How can i limit cpu usage of windows processes using C#
我需要編寫一個將附加到某些Windows進程,監視並限制其CPU使用率的類。 更改進程優先級根本沒有幫助,所以我真的需要編寫一個與BES或ThreadMaster基本相似的程序。 所以我需要創建一個類似這樣的類(偽代碼):
public void cpuLimiter(pid)
{
ProcessHandle handle = attachToProcess(pid);
while (cpuLimiting)
{
if (handle.cpuUsage > 30%)
{
handle.sleep(100miliseconds);
}
sleep(10miliseconds);
}
closeHandle(pid);
}
我希望我說清楚我想要完成什么,只是我不知道如何。 感謝每一位幫助。
請參閱作業對象 , CreateJobObject , SetInformationJobObject
和JOBOBJECT_CPU_RATE_CONTROL_INFORMATION
, AssignProcessToJobObject
。 不要嘗試手工制作自己的內部流程節流閥,而要讓專門為此任務設計的組件(即作業)來處理該任務。
請參閱.net中的CreateJobObject / SetInformationJobObject pinvoke的工作示例? 用於NT作業本機API的托管使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.