使用Process.Start()方法启动应用程序后的通知

时间:2012-06-15 12:35:07

标签: c# .net process.start

我有一段代码,基本上使用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

  1. 使用较小的xyzProcess.Responding

  2. 轮询thread.sleep属性
  3. 轮询xyzProcess.MainWindowTitle的粗略方法,直到它返回一些非空值。

  4. xyzProcess.WaitForInputIdle(sleeptime);

  5. 请帮忙

    谢谢

1 个答案:

答案 0 :(得分:0)

您是在等待应用程序初始化,还是只是等待应用程序执行某些操作?

如果仅仅是应用程序需要“做某事”那么你能不能等待退出吗?

xyzProcess.WaitForExit();