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

时间:2012-06-19 08:36:10

标签: c# process

  

可能重复:
  How to know if Process.Start() is successful?

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

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

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

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

2 个答案:

答案 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)

Process.Start

  如果启动了流程资源,则

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

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

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