Я хочу запустить программу и установить привязку ядра к первым 4 ядрам.Я знаю, как установить сродство ядра в Windows, но я не совсем уверен, как создать маску сродства, которая установит правильность сродства.
Мой текущий код выглядит следующим образом:
int main()
{
std::string exec = "test.exe";
DWORD affinityMask = 0xF; //for 1111, at least that's what I guess
STARTUPINFO info = { sizeof(info) };
PROCESS_INFORMATION processInfo;
SetProcessAffinityMask(GetCurrentProcess(), &affinityMask); //the child process will inherit the core affinity from this process
CreateProcess(exec.c_str(), NULL, NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo);
std::this_thread::sleep_for(std::chrono::seconds(1)); //Used to do some other stuff here
WaitForSingleObject(processInfo.hProcess, INFINITE);
CloseHandle(processInfo.hProcess);
CloseHandle(processInfo.hThread);
return 0;
}
Является ли такой подход жизнеспособным?