2012-04-10 96 views
1

可以使用作業對象(通過CreateJobObject創建)暫停和恢復作業管理的進程的線程(類似於使用TerminateJobObject來終止由作業管理的進程)?作業對象 - 暫停/恢復進程的線程

-Karthik

+0

您想達到什麼目的?可以通過JOBOBJECT_CPU_RATE_CONTROL_INFORMATION獲得類似的效果,並且速率的硬限制爲零。 – John 2012-04-10 18:24:02

+0

@John,來自MSDN:「不應將CpuRate設置爲0.如果CpuRate設置爲0,SetInformationJobObject將返回INVALID_ARGS。」 – 2014-03-25 17:19:12

回答

1

如果要限制CPU使用率,你可能需要設置上Win8的JOBOBJECT_BASIC_LIMIT_INFORMATION.PriorityClass前的Win8和JOBOBJECT_CPU_RATE_CONTROL_INFORMATION

暫停每個線程的基礎通常沒有任何意義,因爲你通常不知道每個線程正在做什麼。

它與作業對象無關,但如果您的目標是WinXP +,則可以使用未記錄的NtSuspendProcess/NtResumeProcess函數掛起/恢復進程中的所有線程(NTSTATUS __stdcall NTDLL::NtSuspendProcess(HANDLE hProcess))。如果您需要支持較舊的系統,Windows調試功能可能會派上用場......