Я использую JobObject, чтобы ограничить использование моего процессора. Я выполняю свой код на двух компьютерах под управлением Windows 10. На одном компьютере он работает, но на другом он не работает, хотя все вызовы WINAPI возвращаются успешно. Это мой код:
string jobName = "test_job";
HANDLE hJobObject = NULL;
hJobObject = CreateJobObject(NULL, jobName.c_str());
if (hJobObject == NULL) {
return -1;
}
JOBOBJECT_CPU_RATE_CONTROL_INFORMATION cpuRateInfo;
cpuRateInfo.ControlFlags = JOB_OBJECT_CPU_RATE_CONTROL_ENABLE | JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP;
cpuRateInfo.CpuRate = 10 * 100;
if (!SetInformationJobObject(hJobObject, JobObjectCpuRateControlInformation, &cpuRateInfo, sizeof(JOBOBJECT_CPU_RATE_CONTROL_INFORMATION))) {
return -1;
}
HANDLE currentProcessHandle = GetCurrentProcess();
if (!AssignProcessToJobObject(hJobObject, currentProcessHandle)) {
return -1;
}
Есть идеи, что является причиной этой проблемы?