C#WaitForExit()不工作?

问题描述:

我开始使用parameteres创建应用程序,并且我想在“Startup.exe”关闭后关闭我的C#应用​​程序。 startup.exe关闭C#应用程序仍在运行后,所以我的问题是为什么WaitForExit()不适合我?以及如何解决这个问题?C#WaitForExit()不工作?

private void button4_Click(object sender, EventArgs e) 
{ 
string arg0 = "/connect"; 
string arg1 = txtUsername.Text; 
string arg2 = txtPassword.Text; 
string genArgs = arg0+" "+arg1 +" "+ arg2; 
string pathToFile = System.IO.Directory.GetCurrentDirectory()+"/Startup.exe"; 
Process runProg = new Process(); 
runProg.StartInfo.FileName = pathToFile; 
runProg.StartInfo.Arguments = genArgs; 
runProg.Start(); 
runProg.WaitForExit(); 
} 
+0

你期望'runProg.WaitForExit()'做什么?提示:它不会关闭你的应用程序。检查[MSDN](https://msdn.microsoft.com/library/system.diagnostics.process.waitforexit(v = vs.110).aspx) –

+0

您可能想查看[如何正确退出C#应用程序] (http://*.com/questions/12977924/how-to-properly-exit-ac-sharp-application) –

你还在按钮处理程序中,所以你的应用程序将继续运行。如果您想关闭应用程序,请在您的声明最后添加Environment.Exit

private void button4_Click(object sender, EventArgs e) 
{ 
    var arg0 = "/connect"; 
    var arg1 = txtUsername.Text; 
    var arg2 = txtPassword.Text; 
    var genArgs = arg0+" "+arg1 +" "+ arg2; 
    var pathToFile = System.IO.Directory.GetCurrentDirectory()+"/Startup.exe"; 

    var runProg = new Process(); 
    runProg.StartInfo.FileName = pathToFile; 
    runProg.StartInfo.Arguments = genArgs; 
    runProg.Start(); 

    Environment.Exit(0); 
} 

WaitForExit将阻塞,直到您产生的过程在继续之前终止。见 - https://msdn.microsoft.com/en-us/library/fb4aw7b8(v=vs.110).aspx

+0

只要删除'WaitForExit'调用,如果你之后所做的只是'Environment.Exit '。 –

+0

完全同意,我会更新回答 –

+0

我只想在关闭Startup.exe后关闭C#应用程序。 – WinDev