Createprocess, le processus parent se termine avant le child.

Signaler
Messages postés
86
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
18 juillet 2009
-
Messages postés
86
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
18 juillet 2009
-
Bonjour,
J'ai besoin de créer un processus enfant dans un programme. Lors de la fermeture du programme parent, le process enfant est terminé via exitprocess. Mais lorsque le procc parent est fermé plus brutalement, la routine appelant ExitProces n'est plus éxecutée, et seul le proces parent se ferme. Le processus enfant lui reste ouvert.
Y aurait-il une solution (en code "propre" de préférence) permettant de lier le child de façon à ce que si le process parent est terminé, il est fermé automatiquement?
Merci d'avance,

2 réponses

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
Salut,

Je penses qu'essayer de fermer le fils depuis le parent n'est pas la bonne solution. En effet, on ne peut pas garantir l'execution d'un code final lors la fermeture brutale d'une application.

Il faut que ce soit le fils qui détecte la destruction du père, sans que le père n'est rien à faire.
Il y a certainement plusiseurs méthodes pour cela. peut être qu'un message est envoyé automatiquement au porcessus fils qand le père meurt comme sous linux. Sinon, on peut tester l'existence du père périodiquement à l'aide d'un timer. Ou démarrer un thread dans le fils qui lance un WaitforSingleObjectsur le processus du père.

Bref, regarde du côté du fils.
Messages postés
86
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
18 juillet 2009

Justement c'est là que ça bloque, puisque le processus lancé ne peut pas être modifié. (programmes comme ping ou cmd.)