Freigeben über


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

Siehe auch

GetProcessAffinityMask

GetSystemInfo

Mehrere Prozessoren

OpenThread

Prozess- und Threadfunktionen

SetThreadAffinityMask

SetThreadIdealProcessorEx

Threads