首页 > 代码库 > Win8.1应用开发之异步编程
Win8.1应用开发之异步编程
在win8应用商店开发时,我们会遇到许多异步方法,它们存在的目的就是为了确保你的应用在执行需要大量时间的任务时仍能保持良好的响应,也就是说调用异步API是为了响应用户的操作。设想一下我们点击一个Button,会从网上下载一些信息,如果没有异步,我们就不得不等它下载完才能继续进行操作。为了能在下载时保持响应,windows提供了一个用于下载源的异步方法SyndicationClient.RetrieveFeedAsync。
// Put the keyword, async on the declaration of the event handler. private async void Button_Click_1(object sender, RoutedEventArgs e) { Windows.Web.Syndication.SyndicationClient client = new SyndicationClient(); // Force the SyndicationClient to download the information. client.BypassCacheOnRetrieve = true; Uri feedUri = new Uri("http://windowsteamblog.com/windows/b/windowsexperience/atom.aspx"); try { // Call SyndicationClient RetrieveFeedAsync to download the list of blog posts. SyndicationFeed feed = await client.RetrieveFeedAsync(feedUri); // The rest of this method executes after await RetrieveFeedAsync completes. rssOutput.Text = feed.Title.Text + Environment.NewLine; foreach (SyndicationItem item in feed.Items) { rssOutput.Text += item.Title.Text + ", " + item.PublishedDate.ToString() + Environment.NewLine; } } catch (Exception ex) { // Log Error. rssOutput.Text = "I'm sorry, but I couldn't load the page," + " possibly due to network problems." + "Here's the error message I received: " + ex.ToString(); } }
异步方法的名字以Async结尾,在调用异步方法时需要使用运算符await,告知编译器这是个异步方法,要注意要在使用了await运算符的方法(如上为Button_Click_1)的声明中加上关键字async。
其实上面程序的执行流为:当执行到await作用的异步方法时,await之后的代码要等到异步方法完成并返回才能执行,但在异步方法执行期间,我们仍然能与应用程序的其他功能进行交互。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。