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 市集應用程式在 Windows 8.1、Windows Server 2012 R2 及更新版本上支援此功能。

需求

   
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 processthreadsapi.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

GetProcessAffinityMask

GetSystemInfo

多個處理器

OpenThread

處理序和執行緒函式

SetThreadAffinityMask

SetThreadIdealProcessorEx

執行緒