Thread-Status?
-
Hallo,
für meinen Prozess-explorer würde ich gern Informationen über die Threads eines Prozesses wissen. So weit so gut. CreateToolhelp32Snapshot, Thread32First etc. Nur kann ich mit meinen Thread-IDs nun wenig anfangen. Wie kriege ich heraus, ob der Thread nun läuft oder gestoppt ist?...
Thread=OpenThread(THREAD_SUSPEND_RESUME, false, CurrentEntry.th32ThreadID); //Anhalten und wieder starten; ReturnValue von ResumeThread ist interessant! SuspendThread(Thread); if(ResumeThread(Thread)==1) { }... klappt nicht!
-
Jeder Thread hat einen "Suspend counter". Ist der 0, ist der Thread running, ist er > 0, ist der Thread suspended. Sowohl ResumeThread als auch SuspendThread geben als DWORD den Stand des Suspend Counters wieder, BEVOR die Funktion gewirkt hat.
SuspendThread erhöht den Counter bei jedem Aufruf um 1 und ResumeThread senkt ihn.SuspendThread gibt 0 zurück -> Thread war vorher laufend!
-
SuspendThread ist böse.
http://blog.kalmbachnet.de/?postid=6