我的程序中有一个类似于看门狗的程序(让我们称之为WD
),这是另一个正在运行的进程(我们称之为A
)。我在某个事件中开始WD
进程,假设按下了一个键,我想用这个过程启动另一个进程,我们称之为B
。
问题是我想知道进程A
成功启动后我想关闭初始进程B
。我怎么检查呢?
我正在使用WD
和B
语法启动流程Process.Start(argList)
和ProcessInfo(argList)
。
每个进程都是一个简单的C#控制台应用程序。
答案 0 :(得分:4)
Process.Start返回一个布尔值( true ,如果进程正确启动) 检查此MSDN link以获取Process.Start()方法。
您的代码应该是:
Process B= new Process();
try
{
B.StartInfo.UseShellExecute = false;
B.StartInfo.FileName = "C:\\B.exe";
B.StartInfo.CreateNoWindow = true;
if (B.Start())
{
// Kill process A
}
else
{
// Handle incorrect start of process B and do NOT stop A
}
}
catch (Exception e)
{
// Handle exception and do NOT stop A
}
答案 1 :(得分:0)
如果启动了流程资源,则返回: true ;如果没有启动新的流程资源,则 false (例如,如果重用现有流程)。
我认为您应该只检查Process.Start
的返回值。如果是true
,您可以关闭当前流程。
根据您使用的重载次数,如果失败,返回值可能为null
。