gpt4 book ai didi

c# - 我如何使用 C# 限制 Windows 进程的 cpu 使用

转载 作者:行者123 更新时间:2023-11-30 19:58:58 28 4
gpt4 key购买 nike

我需要编写一个类来附加到某些 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);
}

我希望我已经说清楚我想要完成什么,只是我不知道如何完成。感谢您的帮助。

最佳答案

  • 您创建一个 JOB 对象
  • 您限制作业的 CPU
  • 将目标进程附加到 JOB

参见 Job Objects , CreateJobObject , SetInformationJobObjectJOBOBJECT_CPU_RATE_CONTROL_INFORMATION , AssignProcessToJobObject .不要尝试手工制作您自己的内部进程节流,让专门为此任务设计的组件(即作业)处理任务。

参见 Working example of CreateJobObject/SetInformationJobObject pinvoke in .net?用于管理 NT Job native API 的使用。

关于c# - 我如何使用 C# 限制 Windows 进程的 cpu 使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25365724/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com