冻结/暂停长时间处理任务

冻结/暂停长时间处理任务

是否可以python.exe myscript.py使用 Windows 7 冻结/暂停长时间处理任务(例如,为期 3 天的计算作业)?

或者更一般地说,是否可以暂停任何 Windows 进程?


(当然,在 Python 的情况下,我可以使用atexit模块,在退出时保存状态,然后终止进程并稍后恢复,但这与这里的主题无关 - 我正在寻找更“通用”的解决方案)

用例:

  1. 你启动一个长时间的处理任务,占用了 25% 或 50% 或 100% 的 CPU,但随后你想在几个小时内正常使用计算机

  2. 你已经使用笔记本电脑电池几个小时了,并且想要正常使用电脑,但是又不想因为 CPU 密集型任务而过快地消耗电池:冻结它!

注意:降低进程优先级并Task Manager不能解决问题:如果计算机的其余部分处于空闲状态,计算密集型进程仍将占用 25%、50% 或 100% 的 CPU,因此 2. 无法解决

答案1

在资源监视器 (PERFMON.EXE /res开始 > 所有程序 > 附件 > 系统工具 > 资源监视器),您可以右键单击任何进程并“暂停”它(然后“恢复”)。您可以通过 CPU 使用率轻松识别您的进程。 性能监控程序

会出现一个警告,这样做可能会导致系统崩溃,但您可以忽略非系统进程(但显然不要暂停所需的系统进程!)

资源监视器是标准 Windows 的一部分(无需下载或安装任何东西);它肯定可以在 Windows 7 和 Windows 10 下运行;我认为大多数其他版本也适用,但我无法验证。

答案2

我发现了一个更简单的解决方案:

如果该python.exe进程在 Windowscmd.exe窗口中运行,并且每隔几秒打印一些文本(记录),那么您可以单击此窗口的任意位置并拖动鼠标,这将使选择可见。
做出选择后,流程暂停(您可以在任务管理器中检查:该进程将降至 CPU 0 %)。要恢复,只需点击Enter

暂停 Python 进程的非常简单的方法:)

在此处输入图片描述

PS:要允许这种选择cmd.exe,您需要执行以下操作ALT SPACE特性, 使能够快速编辑

答案3

除了@Aganju 的回答之外,这里介绍了如何使用AutoHotkey从 ++CTRL启动它:ALTSHIFT ESCAPE

!^+Escape::
Run perfmon.exe /res
return

(类似于常规任务管理器CTRL+ )SHIFT ESCAPE

相关内容