[英]Async Task in Windows Phone
我正在為Windows Phone開發一個應用程序,沒有人幫我...我有一個按鈕,當單擊該按鈕時,它會顯示頁面的正文內容。
在搜索了很多有關如何下載內容而不凍結UI的內容之后,我發現這段代碼很適合我:
private async void btnBotao_Click(object sender, RoutedEventArgs e)
{
string returnedTaskTResult = await AccessTheWebAsync();
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(returnedTaskTResult);
var body = doc.DocumentNode.SelectSingleNode("//body").WriteContentTo();
txb.Text = body;
}
public async Task<string> AccessTheWebAsync()
{
HttpClient client = new HttpClient();
Task<string> getStringTask = client.GetStringAsync("PAGE");
string urlContents = await getStringTask;
return urlContents;
}
我只是想知道這種方式是否正確...因為我對線程幾乎一無所知,即使這對我有用,也許這不是更好的方式...也許這是不完整的...
很感謝!!
如果我沒有完全錯,可以這樣寫:
Task<string> getStringTask = client.GetStringAsync("PAGE");
string urlContents = await getStringTask;
return urlContents;
也像這樣:
return await client.GetStringAsync("PAGE");
(僅需簡單一些的代碼,對我來說是一件好事)對於邏輯部分,如果您使用await / async,則該框架將處理大部分內容。 所以我看不到任何會引起問題的東西
看起來不錯-我唯一要更改的就是簡化語法:
public async Task<string> AccessTheWebAsync()
{
HttpClient client = new HttpClient();
return await client.GetStringAsync("PAGE");
}
您甚至可以完全刪除“ AccessTheWeb”功能,因為它適合於一行:
private async void btnBotao_Click(object sender, RoutedEventArgs e)
{
string returnedTaskTResult = await new HttpClient().GetStringAsync("PAGE");
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(returnedTaskTResult);
var body = doc.DocumentNode.SelectSingleNode("//body").WriteContentTo();
txb.Text = body;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.