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