Mam aplikację konsoli, która uruchamia się, obsługuje kilka usług (długotrwałe uruchamianie), a następnie czeka na klientów, aby do niego zadzwonić. Mam testy integracyjne, które uruchamiają tę aplikację konsolową i wykonują połączenia "klienckie". Jak mogę poczekać, aż aplikacja konsoli zakończy uruchamianie przed wykonaniem połączeń klienta?Jak mogę poczekać, aż aplikacja konsoli będzie bezczynna?
Chcę uniknąć wykonywania Thread.Sleep(int)
, ponieważ zależy to od czasu uruchomienia (który może ulec zmianie) i tracę czas, jeśli uruchomienie jest szybsze.
Process.WaitForInputIdle
działa tylko w aplikacjach z interfejsem użytkownika (i potwierdziłem, że w tym przypadku zgłasza wyjątek).
Jestem otwarty na niezręczne rozwiązania, takie jak, , czy aplikacja konsolowa zapisze plik tymczasowy, gdy będzie gotowy.
Aplikacja konsoli obsługuje usługi WCF. "Klient" wykonuje połączenia WCF. Jeśli aplikacja konsoli nie została zakończona, klient otrzymuje wyjątki Nie znaleziono punktów końcowych. –