How can I start a new Process and wait until it finishes?
Asked Answered
S

2

14

I want to start a program with C# (could use Process.Start()). Then my program should wait until the started program is closed, before it continues.
How do I do this?

Synchronize answered 4/2, 2013 at 17:45 Comment(0)
P
29

After you call Start() add: Process.WaitForExit()

 var myProcess = new Process {StartInfo = new ProcessStartInfo(processPath)};
 myProcess.Start().WaitForExit();
Pinery answered 4/2, 2013 at 17:47 Comment(1)
You can't pass any arguments to the constructor like you can with the static Start method, however you can supply them using the StartInfo property, e.g. var p = new Process { StartInfo = { FileName = @"cmd.exe", Arguments = ... UseShellExecute = false }, }; p.Start(); p.WaitForExit(); p.Close();Holston
U
4

There are two mechanism. You can either hook the Process.Exited event or what you probably really want is to call 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

Unifoliate answered 4/2, 2013 at 17:50 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.