Process.Start() 後にすべてのプロセス インスタンスが終了するようにする
Process.Start()
経由で外部アプリケーションを起動すると、多くの場合、続行する前にアプリケーションの完了を待つ必要があります。 この記事では、特に起動されたアプリケーションの複数のインスタンスを処理する場合に、これを実現する方法について詳しく説明します。
最も単純な方法は、作成された WaitForExit()
オブジェクトで Process
を利用します。
<code class="language-csharp">var process = Process.Start(...); process.WaitForExit();</code>
これにより、起動されたプロセスが終了するまで、呼び出し元のアプリケーションがブロックされます。ただし、アプリケーションの複数のインスタンスが同時に実行される可能性があります。 これに対処するには、ターゲット名を持つすべてのプロセスを列挙し、それぞれを待機します:
<code class="language-csharp">var processes = Process.GetProcessesByName("ABC"); foreach (var process in processes) { process.WaitForExit(); }</code>
この堅牢なアプローチにより、アプリケーションのすべてのインスタンスが終了した後にのみ実行が再開されることが保証されます。
以上がProcess.Start() の使用後にプロセスのすべてのインスタンスが終了したことを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。