Voglio avviare un programma con C# (potrebbe usare Process.Start()
). Quindi il mio programma dovrebbe attendere fino alla chiusura del programma, prima che continui.
Come posso fare questo?Come posso avviare un nuovo processo e attendere fino al termine?
12
A
risposta
26
Dopo aver chiamato Start()
aggiuntivo: Process.WaitForExit()
var myProcess = new Process {StartInfo = new ProcessStartInfo(processPath)};
myProcess.Start().WaitForExit();
3
ci sono due meccanismi. È possibile collegare l'evento Process.Exited o quello che probabilmente si desidera è chiamare Process.WaitForExit().
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exited.aspx
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.waitforexit.aspx
Non è possibile passare alcun argomento al costruttore come è possibile con il metodo di avvio statico, tuttavia è possibile fornire loro utilizzando la proprietà StartInfo, per esempio var p = new Processo { \t \t StartInfo = \t \t \t { \t \t \t \t nomefile = @ "cmd.exe", \t \t \t \t Argomenti = ... \t \t \t \t UseShellExecute = false \t \t \t}, \t}; p.Start(); p.WaitForExit(); p.Close(); –