![在 Windows 7 中将用户限制为一个 CPU 核心](https://linux22.com/image/1266862/%E5%9C%A8%20Windows%207%20%E4%B8%AD%E5%B0%86%E7%94%A8%E6%88%B7%E9%99%90%E5%88%B6%E4%B8%BA%E4%B8%80%E4%B8%AA%20CPU%20%E6%A0%B8%E5%BF%83.png)
我让我的家人通过 RDP 使用我的 PC 玩基于 Flash 的游戏,因为如果他们直接使用笔记本电脑,笔记本电脑会过热。我已经设置好了,这样我就可以和他们同时使用 PC。这台 PC 有一个四核 CPU,我希望能够将其中一个核心分配给通过 RDP 登录的用户,这样其他 3 个核心就可以了。这可能吗?
他们通过为此目的设置的特定用户帐户登录。
谢谢您的任何建议!
答案1
Windows 函数 SetThreadAffinityMask 允许您设置线程的处理器/核心亲和性。因此,使用此函数,您可以指示/强制线程使用一个特定的核心。
要解决您的问题,请执行以下操作:
- 编写一个应用程序,循环遍历所有进程并检查用户
- 如果进程的用户等于作为应用程序参数给出的用户名:
- 循环遍历所有线程
- 将亲和力设置为第一个核心
您可以为该应用程序提供一个美观的窗口前端,并在您登录计算机时自动运行它。
您还可以将此应用程序设为 Windows 服务,并使其在计算机启动时自动运行。
答案2
这不是一个简单的解决方案,但这是使用 VM(虚拟机)软件将计算机完全拆分为两台(或更多台)计算机的最佳方法。这将解决您的问题,也可能解决未来的相关问题(垃圾、病毒……)
安装 VM 后,您可以选择每台计算机将获得多少 CPU 处理时间。此选择也适用于其他资源,如内存、磁盘空间、网络带宽...
如果您选择这样做,最好确保您的 CPU 支持虚拟化。
答案3
这里有很多事情。最简单的解决方案就是让它在笔记本电脑上运行,不是吗?
- 也许笔记本电脑硬件、风扇有问题?
- 您可以尝试降低笔记本电脑的频率以降低运行温度。
如果您打算使用 RDP,可以尝试:
- 在任务管理器中降低 rdp 的进程优先级。(我没有 Windows 7,因此我不确定这是否作为单独的进程运行。)我认为这应该具有与您所追求的效果类似的效果。如果 rdp 作为服务运行,可能有一种方法可以降低其优先级,但它并不像我想象的那么简单。
- 您还可以尝试在任务管理器中更改进程亲和性,我认为使用这个您可以将 rdp 分配给一个核心,但是,同样,这取决于 rdp 是否是一种服务,以及执行此操作有多么容易。