这是创建线程并使用
std::thread
设置亲和力的正确方法吗?
std::thread myThread(threadFunction);
HANDLE threadHandle = myThread.native_handle();
SetThreadAffinityMask(threadHandle, 1);
// Join the thread
myThread.join();
是的,这是正确的。
如果您想在某个时候将其设置回原始状态,
SetThreadAffinityMask
还会返回旧掩码:
HANDLE threadHandle = myThread.native_handle();
DWORD_PTR new_mask = 1;
DWORD_PTR old_mask = SetThreadAffinityMask(threadHandle, new_mask);
如果
old_mask
为零,则设置亲和力失败。