SetThreadIdealProcessor-Funktion (processthreadsapi.h)
Legt einen bevorzugten Prozessor für einen Thread fest. Das System plant Nach Möglichkeit Threads auf ihren bevorzugten Prozessoren.
Auf einem System mit mehr als 64 Prozessoren legt diese Funktion den bevorzugten Prozessor auf einen logischen Prozessor in der Prozessorgruppe fest, dem der aufrufende Thread zugewiesen ist. Verwenden Sie die SetThreadIdealProcessorEx-Funktion , um eine Prozessorgruppe und einen bevorzugten Prozessor anzugeben.
Syntax
DWORD SetThreadIdealProcessor(
[in] HANDLE hThread,
[in] DWORD dwIdealProcessor
);
Parameter
[in] hThread
Ein Handle für den Thread, dessen bevorzugter Prozessor festgelegt werden soll. Das Handle muss über das THREAD_SET_INFORMATION-Zugriffsrecht verfügen. Weitere Informationen finden Sie unter Threadsicherheit und Zugriffsrechte.
[in] dwIdealProcessor
Die Anzahl des bevorzugten Prozessors für den Thread. Dieser Wert ist nullbasiert. Wenn dieser Parameter MAXIMUM_PROCESSORS ist, gibt die Funktion den aktuellen idealen Prozessor zurück, ohne ihn zu ändern.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert der vorherige bevorzugte Prozessor.
Wenn die Funktion fehlschlägt, ist der Rückgabewert (DWORD) – 1. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Hinweise
Sie können die GetSystemInfo-Funktion verwenden, um die Anzahl der Prozessoren auf dem Computer zu bestimmen. Sie können auch die GetProcessAffinityMask-Funktion verwenden, um die Prozessoren zu überprüfen, auf denen der Thread ausgeführt werden darf. Beachten Sie, dass GetProcessAffinityMask eine Bitmaske zurückgibt, während SetThreadIdealProcessor einen ganzzahligen Wert verwendet, um den Prozessor darzustellen.
Ab Windows 11 und Windows Server 2022 umfassen auf einem System mit mehr als 64 Prozessoren standardmäßig Prozess- und Threadaffinitäten alle Prozessoren im System, und das über alle Prozessorgruppen hinweg. Die SetThreadIdealProcessor-Funktion legt den bevorzugten Prozessor auf einen logischen Prozessor in der primären Gruppe des Threads fest.
Um eine Anwendung zu kompilieren, die diese Funktion verwendet, definieren Sie _WIN32_WINNT als 0x0400 oder höher. Weitere Informationen finden Sie unter Verwenden der Windows-Header.
Windows 8.1 und Windows Server 2012 R2: Diese Funktion wird für Windows Store-Apps auf Windows 8.1, Windows Server 2012 R2 und höher unterstützt.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | processthreadsapi.h (einschließlich Windows.h) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |