我有一段代码,基本上使用 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 秒,具体取决于它运行的机器(即在较快的电脑上不到 5 秒,在较慢的电脑上 >10 秒)
我的问题:有没有办法跟踪这个?通过使用 Thread.Sleep(ms)
等待一段时间来轮询一些属性。
我尝试使用以下方法,但没有成功
轮询
xyzProcess.Responding
属性与一个小的thread.sleep
轮询
xyzProcess.MainWindowTitle
直到它返回一些非空值的肮脏方法。xyzProcess.WaitForInputIdle( sleep 时间)
;
请帮忙
谢谢
最佳答案
您是在等待应用程序初始化,还是在等待应用程序执行某些操作?
如果只是应用程序需要“做某事”,那么您是否可以不等待退出?
xyzProcess.WaitForExit();
关于c# - 使用 Process.Start() 方法启动应用程序后的通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11050742/