Thread beenden
-
Hallo!
Ich bin gerade dabei, eine Winsock-Anwendung mit einem Extra-Thread für die
Listen-Funktion zu programmieren.
Meine Thread-Funktion sieht zur Zeit so aus:void lThread(PVOID pvoid) { //Listen (...) MSG message; while(GetMessage(&message, NULL, 0, 0)) { DispatchMessage(&message); } }den Thread starte ich mit dem Code
_beginthread(lThread,0,NULL);und beende ihn mit dem Code
_endthread();Die Funktion _endthread() führe ich erst kurz vor dem Aufruf von
PostQuitMessage(0) aus, sodass der Thread ordnungsgemäß beim Programmende
mitbeendet wird.Doch leider funktioniert das nicht! Obwohl ich beide Funktionen einsetze, wird
mein Programm nicht beendet! (Ich kann es nach dem Aufruf von PostQuitMessage und _endthread immer noch im Taskmanager sehen!)
Wenn ich den "Thread-Kram" aus meinem Code entferne, bzw. die Funktion
_beginthread nicht aufrufe, wird das Programm vollständig beendet.Bitte helft mir!

PS: Leider funktioniert die Funktion TerminateProcess auch nicht

-
Wenn du den Hauptthread beendest, wird normalerweise das ganze Programm beendet, du brauchst also das _endthread überhaupt nicht.
-
Ich würde trotzdem sauber beenden -> ist einfach mhh, tja sauberer

Schick dem Thread doch einfach mittels PostThreadMessage(.....) ein WM_QUIT und dann sollte er sauber aus der while - Schleife rauslaufen.
-
Vielen Dank, Leute!
Mit dem Senden der Nachricht WM_QUIT haut es endlich hin!
Wenn ich euch nicht hätte...