在我的 VB.NET 应用程序中,我启动了一个应用程序并引入了 20 秒的等待延迟。但是对于加载第二个应用程序,时间会有所不同。是否可以有一个do while循环,类似于下图的结构:
Start the application1
do {
sleep(2seconds)
}until(Application1 Window is loaded
你看了Process.WaitForInputIdle()
吗?它一直在等待应用程序进入其用户界面的消息循环(创建一个窗口)。
编辑:在此处查看有关该主题的 MSDN 描述
您将面临的最大障碍是子进程如何传达它已准备好。确定是否加载了另一个进程的窗口充其量是不稳定的。如果您决定更确定的东西,它会更干净
一旦你决定了,那就是相当直接的循环
Dim span = TimeSpan.FromSeconds(20)
Thread.Sleep(span)
Do While Not IsProcessReady()
Thread.Sleep(span)
Loop
如前所述,您需要选择一种机制来“加载”通信,这将成为您的IsProcessReady
功能