2009-11-30 15 views
0

J'ai une configuration d'objet de processus comme ce qui suit:Obtenir un processus de mettre fin à

Process p = new Process(); 
p.StartInfo.FileName = command; 
p.StartInfo.UseShellExecute = true; 
p.StartInfo.Arguments = String.Format(
    commandArguments, 
    destinationLocation, 
    sourceLocation, 
    sourceDirName, 
    (string.IsNullOrEmpty(revisionNotes.Text)) ? "" : revisionNotes.Text); 

(où les valeurs non définies sont fournies à l'extérieur de ce code et sont valides). Le processus en question se lance et s'exécute correctement avec p.Start(); mais je dois l'attraper à la fin. La fenêtre de la console clignote brièvement et disparaît, ce qui semble indiquer que le processus est terminé, mais aucun des événements pertinents n'est déclenché (OutputDataRecieved, Exited, etc.) et c'est comme si le processus ne se terminait jamais. (J'essaie d'exécuter un script lua avec quelques paramètres si c'est pertinent). Quelqu'un peut-il m'aider à faire en sorte que ce processus s'arrête correctement?

Répondre

2

Avez-vous définissez la propriété EnableRaisingEvents du processus True? Vous n'attraperez pas l'événement Exited sans cela.

+0

Ne savait pas à ce sujet, merci! Je vais l'essayer! – RCIX

+0

Garçon qui est un drapeau stupide (au moins pour moi), mais merci pour l'aide ce sera probablement ce que je veux! – RCIX

+0

La méthode de Darin est généralement plus appropriée, sauf si vous voulez faire d'autres choses en attendant la fin du processus. – MartW