gpt4 book ai didi

performance - 如何卡住程序的执行?

转载 作者:行者123 更新时间:2023-12-03 14:42:34 25 4
gpt4 key购买 nike

假设我有一个程序会占用处理器和/或硬盘,以至于几乎不可能在该计算机上执行任何其他操作。现在我不想终止该程序,因为它所做的事情很有用(它是一个批处理作业,确实对 CPU 或磁盘很重,例如它可以压缩几 GB 的数据文件),但在短时间内我需要做该计算机上还有其他东西。外部程序有什么办法可以暂时卡住这个性能 killer 吗?

这就像旧的 DOS 选项一样,可以在程序之间切换,而无需实际进行多任务处理。

假设所讨论的假设程序是第三方产品,我没有其源代码,也无法让它暂停。

我知道我可以更改程序的优先级,例如在任务管理器中但这还不够,我想卡住它。

我正在谈论 Windows XP 作为操作系统,并且想使用 Delphi 编写一个解决方案。我拥有计算机的所有权限,因此我可以以管理员身份启动某些内容、替换文件,如果需要,我还可以安装服务。

最佳答案

您可以使用 Process Explorer 卡住它:右键单击您的程序并选择暂停

以下是来自 http://www.c-plusplus.de/forum/viewtopic-var-p-is-1460293.html 的程序化卡住的一些示例代码,为简洁起见,编辑并省略了错误检查:

#include <windows.h>

_NtSuspendProcess NtSuspendProcess =
(_NtSuspendProcess) GetProcAddress( GetModuleHandle( "ntdll" ),
"NtSuspendProcess" );
HANDLE ProcessHandle = OpenProcess( PROCESS_ALL_ACCESS, FALSE, pid);
NtSuspendProcess( ProcessHandle );

关于performance - 如何卡住程序的执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4062665/

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