C#でWindowsコマンドプロンプトの再コード化を試みました。コマンドプロンプトが、プロセスが終了するのを待つタイミングと、呼び出されたプロセスが終了するのを待たないタイミングをどのように知るのかと思っていました。
たとえば、コマンドプロンプトで「notepad」と入力すると、メモ帳が起動しますが、他のコマンドは実行できます。ただし、more.com、ping.exe、または別のユーティリティなどのユーティリティを開くと、実行中のプログラムが完了するのを待ってから、別のコマンドを実行できます。
コマンドプロンプトは、終了を待機するタイミングをどのようにして知るのでしょうか。また、この動作をC#でエミュレートするにはどうすればよいのでしょうか。