不论是桌面客户端还是Web应用通常会出现处理时间较长的操作,为了在这段时间内不影响用户与应用之间的交互体验,开发人员通常会使用异步调用技术,使得比较复杂的逻辑操作由异步进行,用户仍然可以继续使用应用,不会有无响应的等待情况出现。
成都创新互联主营榆树网站建设的网络公司,主营网站建设方案,app软件开发,榆树h5重庆小程序开发搭建,榆树网站营销推广欢迎榆树等地区企业咨询
本篇将通过一个简单的实例演示如何在Windows 8 应用中使用异步编程。首先我们来编写一个“Get Blogs”按钮,点击它可以从Windows Blog中获取博客列表。当然获取博客信息的过程是由异步进行的,这个过程中为了测试用户仍然可以与应用交互,我们再设计一个“Change Text”用来修改waitingText的内容。
代码
- Style="{StaticResource BasicTextStyle}"/>
- VerticalAlignment="Top" HorizontalAlignment="Left" Height="550"
- Margin="50,10,0,0" Width="650"/>
- Style="{StaticResource BasicTextStyle}" />
接下来为“Get Blogs”按钮添加Click事件,getBlogs_Click与以往Click事件不同之处就在于多了一个async关键字,看到Async就说明下面的内容要通过异步方法来实现。方法中通过SyndicationClient.RetrieveFeedAsync获取博客内容,并通过await操作符告知应用要调用异步操作,且不影响用户正常交互。如果不使用的异步调用的话,用户只能等待所有博客内容加载完成后,才能继续使用该应用。
- private async void getBlogs_Click(object sender, RoutedEventArgs e) {
- waitingText.Text = "Loading Blogs...";
- SyndicationClient client = new SyndicationClient();
- client.BypassCacheOnRetrieve = true;
- Uri feedUri = new Uri("http://blogs.windows.com/windows/b/bloggingwindows/atom.aspx");
- try
- {
- SyndicationFeed feed = await client.RetrieveFeedAsync(feedUri);
- ObservableCollection
blogData = new ObservableCollection (); - listTitle.Text = feed.Title.Text;
- foreach (SyndicationItem item in feed.Items)
- { blogData.Add(new BlogItem()
- { Author = item.Authors[0].Name.ToString(),
- PubDate = item.PublishedDate.Year.ToString() + "/" +
- item.PublishedDate.Month.ToString() + "/" +
- item.PublishedDate.Day.ToString(),
- Title = item.Title.Text
- }); }
- blogList.ItemsSource = blogData;
- waitingText.Text = "Completed!";
- }
- catch (Exception ex)
- {
- waitingText.Text = "Can't load the page:" + ex.ToString(); } }
演示
运行程序点击“Get Blogs”按钮,现在应用已经通过异步方式获取Blog内容,这是我们可以点击“Change Text”来验证一下用户是否可以继续使用应该的其他功能。
点击“Get Blogs”后会出现“Loading Blogs…”的字样,说明此事异步调用已经启动。
在获取到博客内容前点击“Change Text”,刚才的文字会变为“Please Waiting…”,说明当异步调用时用户仍然可以与应用进行交互。
异步调用完成后,文字部分又被更新为“Completed!”。
至此,关于异步调用的开发就完成了。本篇内容只是异步调用的一种类型,当然还有许多其他类型的API可以供大家使用,而且包含C#、VB、JS多种语言开发。
原文链接:http://www.cnblogs.com/gnielee/archive/2012/10/28/windows9-app-develop-async-programming.html
网页名称:Windows8应用开发之异步调用
文章源于:http://www.mswzjz.com/qtweb/news46/200296.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联