我想从当前执行进程A.exe。
启动一个新进程B.exe一旦启动B.exe,我想杀死A.exe(当前正在执行的进程)。
虽然我可以开始B.exe但我无法关闭当前的程序,即A.exe。
我使用的代码是:
//Start the BT Setup Process
ProcessStartInfo startInfo = new ProcessStartInfo(@"C:\TEST\B.exe");
Process.Start(startInfo);
//Terminate the FSA
Process[] myProcess = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName);
foreach (Process process in myProcess)
{
process.CloseMainWindow();
//all the windows messages has to be processed in the msg queue
//hence call to Application DoEvents forces the MSG
Application.DoEvents();
}
答案 0 :(得分:6)
为什么要在A
cat start B
期间关闭A
B
,然后自行关闭?
Process.Start("A.exe");
Process.GetCurrentProcess().Kill(); // or Application.Exit(); or anything else
答案 1 :(得分:6)
如果您正在进入启动流程的任务,并在之后终止自己的流程,请使用Environment.Exit(0)
,而不是Application.Exit()
。
答案 2 :(得分:3)
答案 3 :(得分:2)
如果您只想关闭当前流程,您应该只能调用Application.Exit而不是循环并关闭流程。
答案 4 :(得分:1)
我知道这是旧的,但在.net 4.0中你可以做到
ProcessStartInfo startInfo = new ProcessStartInfo(@"C:\TEST\B.exe");
startInfo.UseShellExecute = true;//This should not block your program
Process.Start(startInfo);
然后是Application.Exit或者其他什么 我在启动一个仅在Console.readline()上阻塞的控制台应用程序后,使用close form方法测试了winforms应用程序;