我有一段代码,它基本上使用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)
.
我徒劳地尝试使用以下方法
用一个小的轮询
xyzProcess.Responding
属性thread.sleep
肮脏的轮询方法,
xyzProcess.MainWindowTitle
直到它返回一些非空值。xyzProcess.WaitForInputIdle(sleeptime)
;
请帮忙
谢谢