2011-10-13 22 views
0

如果我發送一個HttpWebRequest並用回調函數將其與BeginGetResponse一起發送出去,我的回調將永遠不會被觸發。在給出響應之前,頁面完成。頁面生命週期和異步請求在C#asp.net web窗體

如何獲得回覆?

我已經嘗試設置一個計時器:

ThreadPool.RegisterWaitForSingleObject(result.AsyncWaitHandle, new WaitOrTimerCallback(TimeoutCallback), null, DefaultTimeout, true); 

但如果再次DefaultTimeout(在milliseonds)設置爲1毫秒,達到回調。但是如果它設置爲30秒,那麼回調不會被觸發。

如何再次訪問請求/結果?

回答

2

如果您希望在繼續執行代碼之前等待Web請求完成,則需要使用同步GetResponse方法,而不是異步方式BeginGetResponse。這將阻止當前線程,直到請求完成。

+0

我不想等它。我想要的是它自己開火,另一個事件(點擊另一個按鈕)來檢查它是否完成 – cdub