C# 进程的可靠性。Start()然后使用C关闭当前进程#
我有一个C#winform应用程序a,需要使用进程启动另一个winform应用程序B。启动然后关闭自身。源代码如下所示:C# 进程的可靠性。Start()然后使用C关闭当前进程#,c#,process,C#,Process,我有一个C#winform应用程序a,需要使用进程启动另一个winform应用程序B。启动然后关闭自身。源代码如下所示: using(Process updater = new Process()) { updater.StartInfo.FileName = "B.exe"; updater.Start(); } this.Close(); 但我有时注意到A在不运行B的情况下自动关闭 我想知道的是如何确保B.exe在关闭A之前成功启动 顺便说一句,我的目标框架应该是3.5和4
using(Process updater = new Process())
{
updater.StartInfo.FileName = "B.exe";
updater.Start();
}
this.Close();
但我有时注意到A在不运行B的情况下自动关闭
我想知道的是如何确保B.exe在关闭A之前成功启动
顺便说一句,我的目标框架应该是3.5和4
提前谢谢 您可以检查流程是否已启动和响应:
Boolean closeme = false;
using (System.Diagnostics.Process updater = new System.Diagnostics.Process())
{
updater.StartInfo.FileName = "B.exe";
if (updater.Start())
while (!updater.HasExited)
{
if (updater.Responding)
{
closeme = true;
break;
}
/* insert a timeout if process hangs */
}
if (updater.HasExited)
{
/* Do something else (updater.ExitCode) */
}
}
if (closeme)
this.Close();
A
无法阻止B
几乎立即退出。它不会不启动B(nit:这里可能会插入一些防病毒软件),因此您试图从错误的应用程序中解决问题。你需要找出B退出的原因。