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)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

GetProcessAffinityMask

GetSystemInfo

多個處理器

OpenThread

處理序和執行緒函式

SetThreadAffinityMask

SetThreadIdealProcessorEx

執行緒