Thread der Systemaufruf startet, wann/wie wird er beendet
-
Hallo,
ich starte einen Thread der mit
...
int err = system(...);
...ein zweites Programm startet. Jetzt ist die Frage wann dieser Thread zuende ist?
Konkret sendet das gestartete Programm an meine Applikation eine Botschaft das es sich beenden möchte. Ich sende die Antwort das es OK ist und das Programm beendet sich auch.
Jetzt steht mein Programm auf einen Breakpoint hinter meiner gesendeten Antwort und ich sehe mir die laufenden Threads an und sehe das der Thread der das zweite Programm startete noch läuft. Wieso, wann endet er oder wie kann ich ihn beenden ?
-
ich denk createprocess und waitforsingleobject wären hierfür besser geeignet
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createprocess.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/waitforsingleobject.asp
bsp:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/creating_processes.aspps: du startest keinen thread sondern einen prozess
-
Danke für die Antwort,
die Wait-Geschichte ist gerade die die mir Probleme bereitet.
Ich will meine Threads alle schliessen.Ich erkläre mal das Konzept.
Meine Applikation startet den Prozess (gelernt) aus einem Thread heraus.
Jede Antwort der anderen Applikation macht einen neuen Thread auf.
Der Hauptzweig meiner Applikation wartet mit Wait darauf das einer dieser Threads das Wait beendet, damit die Applikation auch beendet werden kann.
...
Jetzt beendet sich die andere Applikation, aber meine hat noch ein paar Threads offen, unter anderem den, der die andere Applikation angestartet hat und den der die Botschaften empfängt und die einzelnen NebenThreads startet.Ich möchte jetzt das Programm sauber herunterfahren, was noch nicht funktioniert.
-
du hast doch alle handles schliesse sie doch einfach mit closehandle() nach dem waitforsingleobject() ?!?
falls es nicht zuviel code ist poste ihn doch mal.