C# – 如何检查进程是否成功启动

可能重复:
如何知道Process.Start()是否成功?

我的程序中有一个类似于看门狗的程序(让我们称之为WD ),这是另一个正在运行的程序(我们称之为A )。 我正在某个事件中启动WD进程,假设按下了一个键,我想用这个进程启动另一个进程,让我们称之为B

问题是我想知道进程B成功启动之后关闭了初始进程A 我怎么检查?

我正在使用Process.Start(argList)ProcessInfo(argList)语法启动进程WDB

每个进程都是一个简单的C#控制台应用程序

Process.Start返回一个布尔值(如果进程正确启动,则为true )检查此MSDN 链接是否为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 } 

的Process.Start

返回:如果启动了进程资源,则返回true ; 如果没有启动新进程资源,则返回false (例如,如果重用现有进程)。

我想你应该只检查Process.Start的返回值。 如果是true ,您可以关闭当前进程。

根据您使用的重载,如果返回值也失败,则返回值可能为null