2009-10-26 18 views
15

Sto tentando di avviare un processo da un pezzo di codice ma voglio che il codice sospenda l'esecuzione fino a quando il processo termina ed esce. Attualmente sto usando la classe System.Diagnostics.Process.Start() per avviare (in particolare) un programma di disinstallazione, e il codice che si sta eseguendo in seguito si basa sul programma di disinstallazione del programma di installazione che termina prima che riprenda l'esecuzione.C# processo sincrono che inizia

Ecco il codice.

using System.Diagnostics; 

var procStIfo = new ProcessStartInfo("cmd", "/c " + variableContainingUninstallerPath); 
procStIfo.RedirectStandardOutput = true; 
procStIfo.UseShellExecute = false; 
procStIfo.CreateNoWindow = true; 

var proc = new Process(); 
proc.StartInfo = procStIfo; 
proc.Start(); 

risposta

34

Dopo la chiamata Start(), aggiungere:

proc.WaitForExit(); 

Vedi Process.WaitForExit per i dettagli.