Использование std::thread и Native_handle() для установки маски привязки потока

Правильный ли это способ создать тему и установить сходство с помощью std::thread?

std::thread myThread(threadFunction);

HANDLE threadHandle = myThread.native_handle();

SetThreadAffinityMask(threadHandle, 1);

🤔 А знаете ли вы, что...
C++ обеспечивает высокую степень контроля над аппаратными ресурсами, что полезно в системном программировании.


97
1

Ответ:

Решено

Да, это правильно.

Если в какой-то момент вы захотите вернуть исходную маску, SetThreadAffinityMask также возвращает старую маску:

HANDLE threadHandle = myThread.native_handle();

DWORD_PTR new_mask = 1;
DWORD_PTR old_mask = SetThreadAffinityMask(threadHandle, new_mask);

Если old_mask равен нулю, установка сходства не удалась.