Webservice: AsyncCall закончил: но WaitOne() все еще ждет
- Я вызываю метод WebService через командную строку Exe.
- Этот вызов метода - Async Call, и я использую WaitOne после Call.
- Я делаю ManualRest.Set() в завершенном методе.
Приведенная выше настройка работает нормально в 99% случаев, когда асинхронный метод возвращается с 10-20 минутами,
Проблема возникает, когда асинхронный вызов занимает больше времени, например, 2-3 часа, после чего код после WaitOne() не выполняется.
Я пишу журналы до и после waitone(), а также в событии Completed, но управление не возвращается после 3 часов асинхронного вызова.
Любая помощь / указатель на выше...
Благодарю.
1 ответ
Вы уверены, что Сет вызывается? Ты используешь System.Diagnostics.Process
? Пожалуйста, опубликуйте код того, как вы используете процесс в своем вопросе.
При использовании процесса существует чрезвычайно высокий риск создания взаимоблокировки, особенно если вы используете примеры кода в MSDN, которые показывают вам, как читать из StandardIn и StandardOut синхронно.
Попробуйте вместо этого использовать асинхронные методы чтения, чтобы избежать тупиковой ситуации.
Process.BeginOutputReadLine
Process.BeginErrorReadLine