Tengo una aplicación de consola que se inicia, aloja un conjunto de servicios (inicio prolongado) y luego espera a que los clientes llamen. Tengo pruebas de integración que inician esta aplicación de consola y hacen llamadas a "clientes". ¿Cómo espero a que la aplicación de la consola complete su inicio antes de realizar las llamadas de los clientes?¿Cómo espero hasta que una aplicación de consola esté inactiva?
Quiero evitar hacer Thread.Sleep(int)
porque eso depende del tiempo de inicio (que puede cambiar) y pierdo tiempo si el inicio es más rápido.
Process.WaitForInputIdle
funciona solo en aplicaciones con una IU (y confirmé que arroja una excepción en este caso).
Estoy abierto a soluciones torpes como, que la aplicación de la consola escriba un archivo temporal cuando esté listo.
La aplicación de consola aloja servicios WCF. El "cliente" hace llamadas WCF. Si la aplicación de consola no ha completado el inicio, el cliente obtiene excepciones de Punto final no encontrado. –