我有一種方法,它從URL中提取HTML,通過解析它提取實體,並返回實體列表。這裏是樣品代碼:從Windows Phone應用程序的DownloadStringCompleted處理程序填充和返回實體
public List<Entity> FetchEntities()
{
List<Entity> myList = new List<Entity>();
string url = "<myUrl>";
string response = String.Empty;
client = new WebClient();
client.DownloadStringCompleted += (sender, e) =>
{
response = e.Result;
// parse response
// extract content and generate entities
// <---- I am currently filling list here
};
client.DownloadStringAsync(new Uri(url));
return myList;
}
的問題是當異步調用與空myList
進度控制的回報。我怎樣才能防止這一點。我的最終目標是返回填充列表。
而且這種方法是在一個單獨的類庫項目,並從Windows Phone應用程序調用,我必須保持它只有這樣。有沒有辦法做到這一點,或者我錯過了什麼?任何幫助將不勝感激。
我嘗試使用上面的方法,我已經添加了包'System.Threading.Tasks'具有參考'System.Threading.Tasks.WP71'項目,但不能夠解決'Task'和'TaskCompletionSource'。你能幫我解決這個問題嗎? – Agent007
你應該引用System.Threading.Tasks而不是System.Threading.Tasks.WP71編輯:程序集本身被稱爲System.Threading.Tasks.WP71並在代碼中添加一個using語句:using System.Threading.Tasks; –
是的,我試過了,這是說不能解決類型'System.Threading.Tasks.TaskExtensions'。我該如何處理? – Agent007