我正在開發一個函數來返回從xml文件生成的集合。WebClient - 等到文件已經下載
最初,我使用本地xml文件進行測試,但現在我已準備好讓應用程序從服務器下載真正的xml文件。由於WebClient
對象需要被賦予一個OpenReadCompleted
事件處理程序 - 我無法從此返回集合數據,並且在此處理程序執行時,原始函數已結束,所以我正在努力查看如何執行此操作。
我原來的代碼如下:
public static ObservableCollection<OutletViewModel> GetNear(GeoCoordinate location)
{
ObservableCollection<OutletViewModel> Items = new ObservableCollection<OutletViewModel>();
// Load a local XML doc to simulate server response for location
XDocument xDoc = XDocument.Load("SampleRemoteServer/outlet_list.xml");
foreach (XElement outlet in xDoc.Descendants("outlet"))
{
Items.Add(new OutletViewModel()
{
Name = outlet.Attribute("name").Value,
Cuisine = outlet.Attribute("cuisine").Value
});
}
return Items;
}
我怎樣才能加載該文件在此功能中,有事件處理程序的運行,然後繼續功能?
我唯一能想到的是添加一個循環來檢查一個變量,該變量由事件處理程序代碼更新......並且聽起來不是一個好的解決方案。
感謝, 喬希
你不想阻止用戶界面線程,因此它可能是值得的異步請求讀了,即使這意味着你要調整你的設計 – 2012-03-15 20:54:52
我已經開始看異步/等待關鍵字,謝謝! – Josh 2012-03-15 23:03:04