У меня есть консольное приложение, которое запускается, размещает кучу служб (длительный запуск), а затем ждет, когда клиенты вызовут его. У меня есть интеграционные тесты, которые запускают это консольное приложение и делают «клиентские» вызовы. Как дождаться завершения запуска консольного приложения, прежде чем совершать клиентские вызовы?
Я не хочу делать Thread.Sleep(int)
, потому что это зависит от времени запуска (которое может измениться), и я теряю время, если запуск происходит быстрее.
Process.WaitForInputIdle
работает только с приложениями с пользовательским интерфейсом ( и я подтвердил, что в этом случае выдается исключение).
Я открыт для неудобных решений, таких как заставить консольное приложение записать временный файл, когда он будет готов.