我可以使用SuspendThread()暂停另一个进程的线程。有没有办法完全暂停执行该流程? 如果是,请发布代码。
感谢。
PS: 既然你会问“你为什么要这样做”我会在这里发布。 我正在处理不再维护的遗留软件。我无权访问源代码。现在我需要它暂停,直到文件充满数据然后恢复执行。
答案 0 :(得分:2)
唯一的方法是暂停该进程的所有线程。
如果您想查看实际代码,请查看示例here。
答案 1 :(得分:0)
>唯一的方法是暂停该进程的所有线程。
没有。
使用未记录的内核api(从NT 3.1导出)来暂停Pid。
答案 2 :(得分:0)
如果进程快速或异步地拥有或生成许多线程,则使用SuspendThread()来处理竞争条件。
实现同一事物(即流程范围)的一种方法是使用DebugActiveProcess()作为调试器附加到目标流程,然后只需调用DebugBreakProcess。当进程处于断点时,将不会创建新线程并且所有执行进程范围都将停止。