SwitchToThread-Funktion (processthreadsapi.h)
Bewirkt, dass der aufrufende Thread die Ausführung an einen anderen Thread übergibt, der auf dem aktuellen Prozessor ausgeführt werden kann. Das Betriebssystem wählt den nächsten auszuführenden Thread aus.
Syntax
BOOL SwitchToThread();
Rückgabewert
Wenn der Aufruf der SwitchToThread-Funktion bewirkt hat, dass das Betriebssystem die Ausführung zu einem anderen Thread wechselt, ist der Rückgabewert nichtzero.
Wenn keine anderen Threads zur Ausführung bereit sind, wechselt das Betriebssystem die Ausführung nicht auf einen anderen Thread, und der Rückgabewert ist 0.
Hinweise
Die Ausführungsrendite gilt für bis zu einem Threadplanungszeits slice auf dem Prozessor des aufrufenden Threads. Das Betriebssystem wechselt die Ausführung nicht zu einem anderen Prozessor, auch wenn sich dieser Prozessor im Leerlauf befindet oder einen Thread mit niedrigerer Priorität ausführt.
Nachdem der Zeitschnitt des ergibtden Threads verstrichen ist, plant das Betriebssystem die Ausführung für den ergibtden Thread neu. Die Neuplanung wird durch die Priorität des ergibtden Threads und die status anderer Threads bestimmt, die zur Ausführung verfügbar sind.
Beachten Sie, dass das Betriebssystem nicht zu einem Thread wechselt, der nur durch die Parallelitätssteuerung an der Ausführung gehindert wird. Beispielsweise schränkt ein E/A-Vervollständigungsport oder Threadpool die Anzahl der zugeordneten Threads ein, die ausgeführt werden können. Wenn die maximale Anzahl von Threads bereits ausgeführt wird, kann kein zusätzlicher zugeordneter Thread ausgeführt werden, bis ein ausgeführter Thread abgeschlossen ist. Wenn ein Thread SwitchToThread verwendet, um auf einen der zusätzlichen zugeordneten Threads zu warten, um einige Arbeit zu erledigen, kann der Prozess deadlocken.
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.
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 unter Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |