2010-08-25 8 views
1

J'écris un programme qui est capable de générer des erreurs dues à LuaInterface et le chargement dans des scripts éditables, cela provoque un problème comme sur l'erreur pas "Application.Exit" ou "Form.FormClosing" événements semblent être appelés. Je ne peux donc pas garantir l'arrêt d'un processus que je cours dans l'application.Force processus fermer sur erreur

Existe-t-il un moyen de fermer le processus lancé lorsque le processus principal se termine par une erreur?

+1

est-ce une application WinForms, console ou WPF? –

Répondre

1

À moins que le processus est terminé avec force, comme en tuant à partir du gestionnaire de tâches ou en utilisant Environment.FailFast, vous devriez être en mesure de faire quelque chose comme ceci dans votre méthode principale:

public static void Main(string[] args) { 

    try { 
     DoNormalStartupStuff(); 
    } 
    finally { 
     foreach (var process in _runningProcesses) { 
      process.Kill(); 
     } 
    } 

} 

L'autre option est pour rendre les processus fils conscients de leur ID de processus parent, soit en transmettant l'ID de processus du parent au processus enfant, soit doing something like this. Ensuite, le processus enfant peut surveiller le processus parent et s'il se termine, le processus enfant peut se suicider.

Questions connexes