我有一段代码,基本上使用Process.Start()
方法调用应用程序。
ProcessStartInfo psi = new ProcessStartInfo(strAppPath);
psi.WindowStyle = ProcessWindowStyle.Maximized | ProcessWindowStyle.Normal;
//Starts the xyz application process.
Process xyzProcess = Process.Start(psi);
xyzProcess.WaitForInputIdle();
尽管该过程在几秒钟内启动,但应用程序可能需要一些时间才能完全初始化。即我的申请xyz
可能需要5-10秒,具体取决于它运行的机器(即在较快的PC上不到5秒,在较慢的PC上则不到10秒)
我的问题:有没有办法跟踪这个?除了使用Thread.Sleep(ms)
等待某个时间之外,通过轮询某些属性。
我尝试使用以下approches
使用较小的xyzProcess.Responding
thread.sleep
属性
轮询xyzProcess.MainWindowTitle
的粗略方法,直到它返回一些非空值。
xyzProcess.WaitForInputIdle(sleeptime)
;
请帮忙
谢谢
答案 0 :(得分:0)
您是在等待应用程序初始化,还是只是等待应用程序执行某些操作?
如果仅仅是应用程序需要“做某事”那么你能不能等待退出吗?
xyzProcess.WaitForExit();