Функция SetThreadIdealProcessor (processthreadsapi.h)
Задает предпочтительный процессор для потока. Система по возможности планирует потоки на предпочитаемых процессорах.
В системе с более чем 64 процессорами эта функция задает для предпочтительного процессора логический процессор в группе процессоров , которой назначен вызывающий поток. Используйте функцию SetThreadIdealProcessorEx , чтобы указать группу процессоров и предпочтительный процессор.
Синтаксис
DWORD SetThreadIdealProcessor(
[in] HANDLE hThread,
[in] DWORD dwIdealProcessor
);
Параметры
[in] hThread
Дескриптор потока, для которого следует задать предпочтительный процессор. Дескриптор должен иметь право доступа THREAD_SET_INFORMATION. Дополнительные сведения см. в разделе Безопасность потоков и права доступа.
[in] dwIdealProcessor
Номер предпочтительного процессора для потока. Это значение отсчитывается от нуля. Если этот параметр MAXIMUM_PROCESSORS, функция возвращает текущий идеальный процессор, не изменяя его.
Возвращаемое значение
Если функция выполняется успешно, возвращаемое значение — это предыдущий предпочтительный процессор.
Если функция завершается сбоем, возвращается значение (DWORD) – 1. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Для определения количества процессоров на компьютере можно использовать функцию GetSystemInfo . Вы также можете использовать функцию GetProcessAffinityMask для проверка процессоров, на которых разрешено выполнение потока. Обратите внимание, что GetProcessAffinityMask возвращает битовую маску, в то время как SetThreadIdealProcessor использует целочисленное значение для представления процессора.
Начиная с Windows 11 и Windows Server 2022, в системе с более чем 64 процессорами сопоставления процессов и потоков по умолчанию охватывают все процессоры в системе во всех группах процессоров. Функция SetThreadIdealProcessor задает для предпочтительного процессора логический процессор в основной группе потока.
Чтобы скомпилировать приложение, использующее эту функцию, определите _WIN32_WINNT как 0x0400 или более поздней версии. Дополнительные сведения см. в разделе Использование заголовков Windows.
Windows 8.1 и Windows Server 2012 R2. Эта функция поддерживается для приложений Магазина Windows на Windows 8.1, Windows Server 2012 R2 и более поздних версиях.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | processthreadsapi.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |