我發現了一個巨大的頁面上進行高效的異步調用以最小的努力在這裏Web服務:異步回調函數完成後是否會引發事件?
我感到困惑的是,我在哪裏把我想執行的代碼後的反應是從服務器收到?發生這種情況時系統是否發生事件?在調用asyncdownload之後簡單地放置代碼並不會提供此功能。
我應該更清楚了;我的項目中有這樣的代碼:
private void SearchBarcode(object sender, EventArgs e)
{
WebClient wc = new WebClient();
var o = Observable.FromEvent<DownloadStringCompletedEventArgs>(wc, "DownloadStringCompleted")
// Let's make sure that we’re on the thread pool
.ObserveOn(Scheduler.ThreadPool)
// When the event fires, just select the string and make
// an IObservable<string> instead
.Select(newString => ProcessString(newString.EventArgs.Result))
// Now go back to the UI Thread
.ObserveOn(Scheduler.Dispatcher)
// Subscribe to the observable, and set the label text
.Subscribe(s => parserInput = s);
wc.DownloadStringAsync(new Uri("http://api.search.live.net/xml.aspx?Appid=appidhere&query=barcodenumber&sources=web"));
}
我看不到我可以放置DownloadCompleted事件調用的位置。 SearchBarcode是一個圖像的onclick處理程序; SearchBarcode執行後控件的位置在哪裏?我想操縱parserInput的值並調用另一個傳遞這些值的xaml頁面。我嘗試添加一個void DownloadCompleted(object sender,DownloadStringCompletedEventArgs e),但它顯然不會被調用。我在這裏錯過了什麼? :(
您是否請詳細解釋一下您想要的內容?您在「DownloadCompleted」事件處理程序中放置的代碼將在下載完成後運行。所以你想要什麼比它更多?或者有什麼問題呢? – 2010-12-16 09:37:17
僅供參考,會引發事件。錯誤被拋出。 – 2010-12-16 11:10:13
夥計們,我編輯了我的問題,以更具體。感謝您的期待:D – Freakishly 2010-12-17 19:03:47