Funzione SetThreadIdealProcessor (processthreadsapi.h)

Imposta un processore preferito per un thread. I thread di sistema pianificano i thread nei processori preferiti ogni volta che è possibile.

In un sistema con più di 64 processori, questa funzione imposta il processore preferito su un processore logico nel gruppo di processori a cui viene assegnato il thread chiamante. Usare la funzione SetThreadIdealProcessorEx per specificare un gruppo di processori e un processore preferito.

Sintassi

DWORD SetThreadIdealProcessor(
  [in] HANDLE hThread,
  [in] DWORD  dwIdealProcessor
);

Parametri

[in] hThread

Handle per il thread il cui processore preferito deve essere impostato. L'handle deve avere il diritto di accesso THREAD_SET_INFORMATION. Per altre informazioni, vedere Thread Security and Access Rights.For more information, see Thread Security and Access Rights.

[in] dwIdealProcessor

Numero del processore preferito per il thread. Questo valore è basato su zero. Se questo parametro è MAXIMUM_PROCESSORS, la funzione restituisce il processore ideale corrente senza modificarlo.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è il processore preferito precedente.

Se la funzione ha esito negativo, il valore restituito è (DWORD) - 1. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

È possibile usare la funzione GetSystemInfo per determinare il numero di processori nel computer. È anche possibile usare la funzione GetProcessAffinityMask per controllare i processori in cui è consentito eseguire il thread. Si noti che GetProcessAffinityMask restituisce una maschera di bit mentre SetThreadIdealProcessor usa un valore integer per rappresentare il processore.

A partire da Windows 11 e Windows Server 2022, in un sistema con più di 64 processori, processi e affinità di thread si estendono su tutti i processori nel sistema, in tutti i gruppi di processori, per impostazione predefinita. La funzione SetThreadIdealProcessor imposta il processore preferito su un processore logico nel gruppo primario del thread.

Per compilare un'applicazione che usa questa funzione, definire _WIN32_WINNT come 0x0400 o versioni successive. Per altre informazioni, vedere Uso delle intestazioni di Windows.

Windows 8.1 e Windows Server 2012 R2: questa funzione è supportata per le app di Windows Store in Windows 8.1, Windows Server 2012 R2 e versioni successive.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione processthreadsapi.h (includere Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

GetProcessAffinityMask

GetSystemInfo

Processori multipli

OpenThread

Funzioni di processi e thread

SetThreadAffinityMask

SetThreadIdealProcessorEx

Thread