2012-06-19 31 views
5

可能重复:
How to know if Process.Start() is successful?C# - 如何检查某个进程已成功启动

我也有类似的监视进程(我们称之为WD)在我的计划,是另一个运行过程(我们称之为A)。我在某个事件中启动了WD进程,假设一个键被按下,我想用此进程启动另一个进程,我们将其称为B

事情是,我想关闭最初的过程A之后,我知道进程B已成功启动。我如何检查?

我正在启动进程WDBProcess.Start(argList)ProcessInfo(argList)语法。

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

+0

你tryed使用try {}赶上{}? –

+0

问题在于try catch部分可帮助您打开异常。我已经这样做了,但它没有给我提供关于这个过程的等待时间的信息。 – Simon

回答

4

的Process.Start返回一个布尔(如果进程正常启动) 检查这个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 
     } 
0

Process.Start

回报:如果一个进程的资源开始真正; false如果没有启动新的进程资源(例如,如果现有进程被重用)。

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

根据您使用的过载情况,返回值也可能是null

相关问题