Question

J'ai un C # -Demande, qui commence des enfants-processus et redistribuent les Standart-entrée et de sortie.

Si je ferme l'application sur la voie normale de tous les processus enfants seront détruits, mais si la demande est tué par le gestionnaire de tâches ou d'une autre manière que je ne peux pas fermer les enfants-processus.

Ils existent et ont besoin de CPU-Power (presque 99%). Je pense qu'ils ont tellement besoin d'énergie parce que leur « réorienté » Standart-sortie n'est pas readed?

Est-il possible de fermer les enfants-processus toujours? Ou pour diminuer leur temps CPU après avoir tué le processus parent?

Merçi

Kevin Meier

Était-ce utile?

La solution

La réponse est Non!

Lorsque l'utilisateur met fin à votre processus d'application, il est juste terminé. Vous ne pouvez rien faire à ce sujet, sauf si vous avez le code source des processus enfants et les modifier pour mettre fin après la fin de parent ou d'utiliser un processus d'observation individuelle de mettre fin à des processus enfants de votre application quand il est terminé.

Autres conseils

Réorientation les flux provoquent une forte utilisation shouldnt cpu par elle-même, quelque chose se passe probablement d'autre.

Si j'ai eu ce problème, je vérifierais processus parent en cours d'exécution parfois dans tous les processus de l'enfant si elles existent processus de Do not parent, processus enfant ferait quitter.

Si vous voulez garantir que les processus enfants prennent fin lorsque le parent est terminé, vous pouvez utiliser CreateJobObject , AssignProcessToJobObject , etc. Mais en général, il devrait être possible.

Vous pouvez utiliser le nom tuyaux etc pour communiquer entre les processus parents et enfants, continuer à vérifier si le parent est là ou pas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top