在我的VB.NET应用程序中,我启动了一个应用程序并引入了20秒的等待延迟。但是对于加载第二个应用程序,时间是变化的。是否可以使用while循环,类似于下面显示的结构:
Start the application1
do {
sleep(2seconds)
}until(Application1 Window is loaded
答案 0 :(得分:2)
你看过Process.WaitForInputIdle()
了吗?它等待应用程序进入其用户界面的消息循环(创建一个窗口)。
修改:请参阅主题here
上的MSDN说明答案 1 :(得分:1)
您将面临的最大障碍是儿童流程如何传达它已做好准备。确定是否加载了另一个进程的窗口最多是不稳定的。如果你决定更明确的东西,那就更清洁了
一旦你做出决定,那就是相当直接的循环
Dim span = TimeSpan.FromSeconds(20)
Thread.Sleep(span)
Do While Not IsProcessReady()
Thread.Sleep(span)
Loop
如前所述,您需要选择一种机制来传达“已加载”并成为您的IsProcessReady
功能