2011-10-22 55 views
0
  1. 我正在通過Command Line Exe調用WebService方法。
  2. 此方法調用是異步調用,我在調用後使用WaitOne。
  3. 我在完成方法中執行ManualRest.Set()。

上述安裝方法的效果的,其中異步方法返回withing 10-20 mintues病例細99%,Webservice:AsyncCall完成:但WaitOne()仍在等待

問題時 當異步調用需要花費更多的像2-3小時的時間,則WaitOne()之後的代碼沒有被執行。

我在waitone()之前和之後以及在Completed事件中寫入日誌,但是在異步調用3小時後,控件似乎沒有回來。

上面的任何幫助/指針...

謝謝。

+1

請張貼的只是描述它的一些代碼來代替。細節很重要,當你用自己的語言描述你的代碼時,它們會迷失方向。 –

回答

2

你確定Set被調用嗎?你在用System.Diagnostics.Process嗎?請張貼您在問題中使用過程的代碼。

使用進程時,創建死鎖的風險非常高,特別是如果您使用MSDN上的代碼示例來向您展示如何同步讀取StandardIn和StandardOut。

請嘗試使用異步讀取方法來避免死鎖。

+0

感謝您的快速回復!是的,我正在使用System.Diagnostics.Process,至今未使用BeginOutputReadLine,將嘗試... – Baljeetsingh