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

7

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

我有一个类似于程序看门狗的进程(我们称其为WD),它是另一个正在运行的进程(我们称其为A)。在某些事件发生时,例如按下某个键,我会启动WD进程,并希望通过该进程启动另一个进程(我们称其为B)。

我的问题在于,我想要在确保进程B成功启动后关闭初始进程A。如何检查这一点呢?

我使用Process.Start(argList)ProcessInfo(argList)语法启动WDB进程。每个进程都是一个简单的C#控制台应用程序。


你尝试过使用 try {} catch {} 吗? - Ionut Flavius Pogacian
问题在于try catch部分帮助您打开异常。我已经这样做了,但它并没有给我关于等待该进程打开的时间信息。 - Simon
2个回答

7

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
        }

0

Process.Start

返回:如果启动了进程资源,则为 true ; 如果未启动新的进程资源(例如,如果重用现有进程),则为 false
我认为您应该只检查 Process.Start 的返回值。 如果是 true ,则可以关闭当前进程。
根据您使用的重载,如果失败,返回值可能为 null

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接