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.1Windows Server 2012 R2:Windows 8.1、Windows Server 2012 R2 及更高版本的 Windows 应用商店应用支持此函数。

要求

要求
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 processthreadsapi.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

GetProcessAffinityMask

GetSystemInfo

多个处理器

OpenThread

进程和线程函数

SetThreadAffinityMask

SetThreadIdealProcessorEx

线程