Freigeben über


Anhalten der Threadausführung

Ein Thread kann die Ausführung eines anderen Threads anhalten und fortsetzen. Während ein Thread angehalten ist, wird er nicht für die Zeit auf dem Prozessor geplant.

Wenn ein Thread in einem angehaltenen Zustand (mit dem flag CREATE_SUSPENDED ) erstellt wird, beginnt er erst dann mit der Ausführung, wenn ein anderer Thread die ResumeThread-Funktion mit einem Handle für den angehaltenen Thread aufruft. Dies kann hilfreich sein, um den Status des Threads zu initialisieren, bevor er mit der Ausführung beginnt. Das Anhalten eines Threads bei der Erstellung kann für die einmalige Synchronisierung nützlich sein, da dadurch sichergestellt wird, dass der angehaltene Thread den Ausgangspunkt seines Codes ausführt, wenn Sie ResumeThread aufrufen.

Die SuspendThread-Funktion ist nicht für die Threadsynchronisierung vorgesehen, da sie den Punkt im Code nicht steuert, an dem die Ausführung des Threads angehalten wird. Diese Funktion ist in erster Linie für die Verwendung durch Debugger konzipiert.

Ein Thread kann vorübergehend seine Ausführung für ein angegebenes Intervall durch Aufrufen der Sleep - oder SleepEx-Funktionen zurückgeben. Dies ist insbesondere in Fällen nützlich, in denen der Thread auf Benutzerinteraktionen reagiert, da er die Ausführung so lange verzögern kann, dass Benutzer die Ergebnisse ihrer Aktionen beobachten können. Während des Standbyintervalls wird der Thread nicht für die Zeit auf dem Prozessor geplant.

Die SwitchToThread-Funktion ähnelt Sleep und SleepEx, mit der Ausnahme, dass Sie das Intervall nicht angeben können. SwitchToThread ermöglicht es dem Thread, seinen Zeitslice aufzugeben.