3

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)

次のアプローチを無駄に使ってみました

  1. xyzProcess.Responding小さなポーリングプロパティthread.sleep

  2. xyzProcess.MainWindowTitlenull以外の値を返すまでポーリングするという汚いアプローチ。

  3. xyzProcess.WaitForInputIdle(sleeptime);

助けてください

ありがとう

4

1 に答える 1