Trouver tous les processus enfants de mon propre .NET de processus et de savoir si un processus est un enfant de mon propre?

J'ai un .NET bibliothèque de classe qui lance un processus secondaire qui est maintenu en marche jusqu'à ce que je disposer de l'objet.

En raison de certains événements du programme en attente dans la mémoire, j'ai décidé d'ajouter un test d'intégration pour s'assurer que si je laisse l'objet de déchéance de GC/Finalisation, ce processus est mis en veille.

Cependant, puisque le processus est l'Mercurial client en ligne de commande, et mon serveur de développement est déjà en cours d'exécution Mercurial dans le cadre de ses propres opérations, j'ai envisager des situations où Mercurial est déjà en cours d'exécution lorsque le test commence, ou qu'il est démarré, et est toujours en cours d'exécution, une fois le test terminé, en ce qui concerne le serveur de build, et pas de mon essai.

Donc, je veux assurez-vous que l'Mercurial client je trouve (ou pas), j'ai commencé, et pas seulement tout client qui est actuellement en cours d'exécution.

Donc la question est: est-ce

  • Comment puis-je savoir si l'Mercurial client que je suis en train de regarder a commencé par mon processus?

En "regardant", j'ai été à la recherche à l'aide de la Processus.GetProcesses méthode, mais ce n'est pas une exigence.

Si une question différente, c'est mieux, "Comment trouver tous processus enfants de mon propre processus", c'est à dire. plus facile à répondre, c'est plus que suffisant.

J'ai trouvé cette page: Comment je peux savoir que le parent de l'ID de processus du processus?, mais il semble que j'ai pour lui donner le nom de ce processus. Si je viens de la donner "hg", n'est pas qu'une question trop ambigus pour le cas, je suis à la recherche d'?

OriginalL'auteur Lasse Vågsæther Karlsen | 2011-08-25