2011-09-10 62 views
2

我試圖使用Webclient進行異步HTTP GET請求,但是,註冊回調永遠不會被調用。我也嘗試過同步,它運行良好。我究竟做錯了什麼?Webclient的DownloadStringCompleted事件處理程序從來沒有調用

WebClient asyncWebRequest; 
public AsyncWebRequest(Uri url) 
{ 
    asyncWebRequest = new WebClient(); 
    url = new Uri("http://www.google.com/"); 
    // string test = asyncWebRequest.DownloadString(url); // this works 
    asyncWebRequest.DownloadStringCompleted += new DownloadStringCompletedEventHandler(asyncWebRequest_DownloadStringCompleted); 
    asyncWebRequest.DownloadStringAsync(url); 
} 

void asyncWebRequest_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
{ 
    throw new NotImplementedException(); 
} 
+3

我猜你是在一個控制檯應用程序測試這一點,您的下載完成之前退出'Main'? – BrokenGlass

+0

Eh。謝謝,這是問題所在。 – norbip

回答

2

也許是因爲您在下載完成之前處理WebClient。代碼執行不會在asyncWebRequest.DownloadStringAsync(url);上停止,並且您通過關閉using語句來處置WebClient對象。

嘗試在asyncWebRequest_DownloadStringCompleted上處置WebClient

結果

enter image description here

+0

我已經更新了問題中的代碼。它仍然不起作用。 – norbip

+0

剛剛測試的代碼..它的工作 – Samich

+0

嗯,是的,問題是我已經測試它作爲一個控制檯的應用程序,它退出之前被調用。 (請參閱我的問題的第一條評論)。 – norbip

相關問題