有没有办法限制 CPU 其他应用程序的使用?

Is there a way to limit the CPU usage of OTHER applications?

所以,我哥哥在玩《堡垒之夜》时,它有点滞后。所以我提议制作一个应用程序来限制其他应用程序的 CPU 使用,但实际上我在获得限制以继续 other 应用程序时遇到了麻烦。

这是我试过的代码:

public void ThrottledLoop(Action action, int cpuPercentageLimit)
        {
            Stopwatch stopwatch = new Stopwatch();

            while (true)
            {
                stopwatch.Reset();
                stopwatch.Start();

                long actionStart = stopwatch.ElapsedTicks;
                action.Invoke();
                long actionEnd = stopwatch.ElapsedTicks;
                long actionDuration = actionEnd - actionStart;

                long relativeWaitTime = (int)(
                    (1 / (double)cpuPercentageLimit) * actionDuration);

                Thread.Sleep((int)((relativeWaitTime / (double)Stopwatch.Frequency) * 1000));
            }
        }

请帮忙,如果您需要任何其他信息,请告诉我。 谢谢


以上评论的总结。


您可以指定 处理器“亲和力”)允许运行进程。这提供了比设置进程优先级更精细的粒度控制。

例如限制某些进程在具有 16 个逻辑内核的系统上使用 最后 4 个内核,但允许 Fortnite 使用任何它想要的东西。请注意,某些应用可能不太喜欢它。

反病毒程序有时会在系统内核列表的末尾发挥作用。

查看 Windows 任务管理器 详细信息 选项卡。

另见

  • How can I set processor affinity to a thread or a Task in .NET?