Freigeben über


SuspendThread-Funktion (processthreadsapi.h)

Hält den angegebenen Thread an.

Eine 64-Bit-Anwendung kann einen WOW64-Thread mit der Wow64SuspendThread-Funktion anhalten.

Syntax

DWORD SuspendThread(
  [in] HANDLE hThread
);

Parameter

[in] hThread

Ein Handle für den Thread, der angehalten werden soll.

Das Handle muss über das zugriffsrecht THREAD_SUSPEND_RESUME verfügen. Weitere Informationen finden Sie unter Threadsicherheit und Zugriffsrechte.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert die vorherige Angehaltene Anzahl des Threads. Andernfalls ist (DWORD) -1es . Verwenden Sie die GetLastError-Funktion , um erweiterte Fehlerinformationen abzurufen.

Hinweise

Wenn die Funktion erfolgreich ist, wird die Ausführung des angegebenen Threads angehalten, und die Anzahl der Unterbrechungen des Threads wird erhöht. Das Anhalten eines Threads führt dazu, dass der Thread die Ausführung von Benutzermoduscode (Anwendungscode) beendet.

Diese Funktion ist in erster Linie für die Verwendung durch Debugger konzipiert. Es ist nicht für die Threadsynchronisierung vorgesehen. Das Aufrufen von SuspendThread für einen Thread, der ein Synchronisierungsobjekt besitzt, z. B. ein Mutex oder ein kritischer Abschnitt, kann zu einem Deadlock führen, wenn der aufrufende Thread versucht, ein Synchronisierungsobjekt abzurufen, das einem angehaltenen Thread gehört. Um diese Situation zu vermeiden, sollte ein Thread in einer Anwendung, die kein Debugger ist, dem anderen Thread signalisieren, sich selbst anzusetzen. Der Zielthread muss so konzipiert sein, dass er für dieses Signal watch und entsprechend reagieren kann.

Jeder Thread verfügt über eine Angehaltene Anzahl (mit einem Höchstwert von MAXIMUM_SUSPEND_COUNT). Wenn die Anzahl der Unterbrechungen größer als 0 ist, wird der Thread angehalten. Andernfalls wird der Thread nicht angehalten und kann ausgeführt werden. Durch das Aufrufen von SuspendThread wird die Anzahl der Ansetzungen des Zielthreads erhöht. Der Versuch, die maximale Anzahl der Unterbrechungen zu inkrementieren, führt zu einem Fehler, ohne die Anzahl zu erhöhen.

Die ResumeThread-Funktion verringert die Anzahl der Angehaltenen eines angehaltenen Threads.

Windows Phone 8.1: Diese Funktion wird für Windows Phone Store-Apps unter Windows Phone 8.1 und höher unterstützt.

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 unter Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Bibliothek Kernel32.lib; WindowsPhoneCore.lib unter Windows Phone 8.1
DLL Kernel32.dll; KernelBase.dll am Windows Phone 8.1

Weitere Informationen

OpenThread

Prozess- und Threadfunktionen

ResumeThread

Threadausführung angehalten

Threads