У меня есть веб-сервис WCF (не под моим контролем), который реализует функциональные возможности, которые мне нужны для доступа через IsOneWay = true + интерфейс обратного вызова, один из методов которого уведомляет о завершении обработки. Он был написан таким образом, поскольку он был первоначально разработан для доступа из графического интерфейса.Ожидание завершения одностороннего вызова WCF в приложении консоли C#
Однако мне нужно получить доступ к этому же методу из консольного приложения для использования в пакете. В настоящее время мой грубый метод достижения этого - установить флаг в false и после вызова метода WCF я реализую цикл while с кратким вызовом Thread.Sleep(). Это, очевидно, работает, но кажется очень плохим способом достижения конечного результата.
Я хотел бы знать, как правильно это сделать. Примечание: служба вне моего контроля, и ссылка только что была добавлена через IDE, хотя я могу легко подделать реализацию кода и т. Д.
@anonymouse: И смотреть на [перегрузках 'ManualResetEvent.WaitOne'] (HTTP: //msdn.microsoft.com/de-de/library/57deze2z.aspx). Вы даже можете установить тайм-аут, чтобы ваше приложение не ожидало навсегда в случае ошибок. – Stephan