Webservice: AsyncCall закончил: но WaitOne () все еще ждет - PullRequest
0 голосов
/ 22 октября 2011
  1. Я вызываю метод WebService через командную строку Exe.
  2. Этот вызов метода является асинхронным, и я использую WaitOne после вызова.
  3. Я выполняю ManualRest.Set () в завершенном методе.

Вышеуказанная настройка работает нормально в 99% случаев, когда асинхронный метод возвращается с 10-20 минутами,

Проблема возникает когда асинхронный вызов занимает больше времени, например 2-3 часа, код после WaitOne () не выполняется.

Я пишу журналы до и после waitone (), а также в событии Completed, но элемент управления выполняетне возвращается после 3 часов асинхронного вызова.

Любая помощь / указатель выше ...

Спасибо.

1 Ответ

2 голосов
/ 22 октября 2011

Вы уверены, что Сет вызывается? Вы используете System.Diagnostics.Process? Пожалуйста, опубликуйте код того, как вы используете процесс в своем вопросе.

При использовании процесса существует очень высокий риск создания тупика, особенно если вы используете примеры кода на MSDN, которые показывают, как читать из StandardIn и StandardOut синхронно.

Попробуйте вместо этого использовать асинхронные методы чтения, чтобы избежать тупика.

...