在我的VB.NET應用程序中,我啓動了一個應用程序並引入了20秒的等待延遲。但是對於加載第二個應用程序,時間是不同的。是否有可能有while循環一做,類似於結構如下圖所示:等待處理
Start the application1
do {
sleep(2seconds)
}until(Application1 Window is loaded
在我的VB.NET應用程序中,我啓動了一個應用程序並引入了20秒的等待延遲。但是對於加載第二個應用程序,時間是不同的。是否有可能有while循環一做,類似於結構如下圖所示:等待處理
Start the application1
do {
sleep(2seconds)
}until(Application1 Window is loaded
你看Process.WaitForInputIdle()
?它正在等待應用程序爲其用戶界面輸入消息循環(創建一個窗口)。
編輯:參見主題here
你要面臨的最大障礙是如何子進程進行通信,它已經準備好了MSDN描述。確定是否加載了另一個進程的窗口最好是不穩定的。如果你決定在一些更明確的
一旦你決定上那是相當很乾淨多了直向迴路
Dim span = TimeSpan.FromSeconds(20)
Thread.Sleep(span)
Do While Not IsProcessReady()
Thread.Sleep(span)
Loop
如前所述,您需要選擇機械sm溝通「加載」,併成爲您的IsProcessReady
函數
這是假設他在控制其他應用程序。在這種情況下,我認爲IPC事件是解決這個問題的更好方法。魔術鍵寫入註冊表或文件很容易在應用程序崩潰等錯誤。 – aKzenT 2012-04-04 21:36:58
@aKzenT好點,加了一點關於使用IPC – JaredPar 2012-04-04 21:42:42