等待过程

时间:2012-04-04 21:18:58

标签: vb.net process

在我的VB.NET应用程序中,我启动了一个应用程序并引入了20秒的等待延迟。但是对于加载第二个应用程序,时间是变化的。是否可以使用while循环,类似于下面显示的结构:

Start the application1
do {
    sleep(2seconds)
}until(Application1 Window is loaded

2 个答案:

答案 0 :(得分:2)

你看过Process.WaitForInputIdle()了吗?它等待应用程序进入其用户界面的消息循环(创建一个窗口)。

修改:请参阅主题here

上的MSDN说明

答案 1 :(得分:1)

您将面临的最大障碍是儿童流程如何传达它已做好准备。确定是否加载了另一个进程的窗口最多是不稳定的。如果你决定更明确的东西,那就更清洁了

  • 创建特定注册表项
  • 将值写入预定文件
  • Windows消息

一旦你做出决定,那就是相当直接的循环

Dim span = TimeSpan.FromSeconds(20)
Thread.Sleep(span)
Do While Not IsProcessReady()
  Thread.Sleep(span)
Loop

如前所述,您需要选择一种机制来传达“已加载”并成为您的IsProcessReady功能

相关问题