我正在运行应用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
?
答案 0 :(得分:2)
Test_A
和Test_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