Vb.net 等待进程
在我的VB.NET应用程序中,我启动了一个应用程序,并引入了20秒的等待延迟。但是对于加载第二个应用程序,时间是变化的。是否可以有一个do-while循环,类似于如下所示的结构:Vb.net 等待进程,vb.net,process,Vb.net,Process,在我的VB.NET应用程序中,我启动了一个应用程序,并引入了20秒的等待延迟。但是对于加载第二个应用程序,时间是变化的。是否可以有一个do-while循环,类似于如下所示的结构: Start the application1 do { sleep(2seconds) }until(Application1 Window is loaded 您是否查看了Process.WaitForInputIdle()?它一直在等待应用程序进入其用户界面的消息循环(创建了一个窗口) 编辑:请参阅主题的
Start the application1
do {
sleep(2seconds)
}until(Application1 Window is loaded
您是否查看了
Process.WaitForInputIdle()
?它一直在等待应用程序进入其用户界面的消息循环(创建了一个窗口)
编辑:请参阅主题的MSDN说明您将要面临的最大障碍是子进程如何传达它已准备就绪。确定是否加载了另一个进程的窗口充其量是不可靠的。如果你决定做更明确的事情,那就更干净了
- 创建特定的注册表项
- 将值写入预定文件
- Windows消息
Dim span = TimeSpan.FromSeconds(20)
Thread.Sleep(span)
Do While Not IsProcessReady()
Thread.Sleep(span)
Loop
如前所述,您需要选择一种机制来“加载”通信,这将成为您的
IsProcessReady
函数这是假设他控制了另一个应用程序。在这种情况下,我认为IPC事件是更好的处理方法。在应用程序崩溃等情况下,将魔术键写入注册表或文件容易出错。