Я намагався перекодувати командний рядок Windows у C #. Мені було цікаво, як командний рядок знає, коли чекати, поки процес почне виходити, а коли не чекати виходу викликаного процесу.
Наприклад, якщо ви введете в командному рядку "блокнот", Блокнот запуститься, але ви все одно можете виконати інші команди. Однак, якщо ви відкриєте утиліту, таку як more.com, ping.exe, або іншу утиліту, вона буде чекати завершення програми, що виконується, перш ніж дозволити вам виконати іншу команду.
Як командний рядок знає, коли слід чекати виходу, і як цю поведінку можна емулювати в C #?