我正在寻找不同的方法来通过Windows XP下的进程ID以程序方式暂停和恢复某个特定进程。
进程暂停恢复工具 做到 SuspendThread
ResumeThread
但对多线程程序和死锁问题发出警告。
PsSuspend 看起来还不错,但我不知道它是否对死锁有什么特别的作用,或者使用其他方法?
首选语言 : C++ Python
解决方案:
如果你 “调试调试器”(例如,使用 logger.exe
来跟踪所有由 windbg.exe
),看来调试器使用的是 SuspendThread()
ResumeThread()
来暂停正在调试的进程中的所有线程。
PsSuspend可能会使用不同的方式来暂停进程(我不确定),但它仍然有可能挂起其他进程:如果你暂停的进程持有另一个进程所需要的共享同步对象,你可能会阻止另一个进程取得任何进展。如果两个程序都写得很好,当你恢复被暂停的那个程序时,它们应该会恢复,但不是所有的程序都写得很好。如果这导致你的程序暂停,那么你就有一个死锁。