使用Process.Start()运行另一个应用程序

时间:2017-12-20 12:30:45

标签: vb.net process.start

我正在运行应用Test_A,并且从这个开始使用此代码启动另一个名为Test_B的应用程序:

Test_B.StartInfo.CreateNoWindow = True
Test_B.StartInfo.UseShellExecute = False
Test_B.StartInfo.FileName = "App_Test_B.exe"
Test_B.Start()

Test_A等待Test_B退出,我正在运行此循环:

Do Until Test_B.HasExited = True
   Application.DoEvents()
   System.Threading.Thread.Sleep(100)
Loop

我的问题是,如果此Sleep(100)也会影响Test_B申请或仅适用于Test_A

1 个答案:

答案 0 :(得分:2)

Test_ATest_B都是独立的流程。 Test_A中发生的事情不会影响Test_B,除非它通过某种Interprocess Communication明确与Test_B进行通信。

顺便说一句,该循环不是等待进程结束的好方法。相反,您应该使用在进程终止时引发的Process.Exited event

Test_B.StartInfo.CreateNoWindow = True
Test_B.StartInfo.UseShellExecute = False
Test_B.StartInfo.FileName = "App_Test_B.exe"
Test_B.EnableRaisingEvents = True

AddHandler Test_B.Exited, AddressOf TestB_Exited

Test_B.Start()

在代码的其他部分:

Private Sub TestB_Exited(sender As Object, e As EventArgs)
    'Do something when Test_B has exited.
End Sub
相关问题