Windows 8应用开发之异步调用

2016-02-19 23:59 2 1 收藏

下面,图老师小编带您去了解一下Windows 8应用开发之异步调用,生活就是不断的发现新事物,get新技能~

【 tulaoshi.com - Windows8教程 】

不论是桌面客户端还是Web应用通常会出现处理时间较长的操作,为了在这段时间内不影响用户与应用之间的交互体验,开发人员通常会使用异步调用技术,使得比较复杂的逻辑操作由异步进行,用户仍然可以继续使用应用,不会有无响应的等待情况出现。

本篇将通过一个简单的实例演示如何在Windows 8 应用中使用异步编程。首先我们来编写一个Get Blogs按钮,点击它可以从Windows Blog中获取博客列表。当然获取博客信息的过程是由异步进行的,这个过程中为了测试用户仍然可以与应用交互,我们再设计一个Change Text用来修改waitingText的内容。

代码

StackPanel Orientation="Horizontal" Grid.Row="1"

StackPanel

TextBlock x:Name="listTitle" Height="40" Width="200"

Style="{StaticResource BasicTextStyle}"/

ListView x:Name="blogList" ItemTemplate="{StaticResource listTemplate}"

VerticalAlignment="Top" HorizontalAlignment="Left" Height="550"

Margin="50,10,0,0" Width="650"/

/StackPanel

StackPanel Orientation="Vertical" VerticalAlignment="Top"

TextBlock x:Name="waitingText" Height="40" Width="200"

Style="{StaticResource BasicTextStyle}" /

Button x:Name="getBlogs" Content="Get Blogs" Width="150"

Click="getBlogs_Click" /

Button x:Name="changeText" Content="Change Text" Margin="0,10,0,0"

Width="150" Click="changeText_Click" /

/StackPanel

/StackPanel

接下来为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

try

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

{

SyndicationFeed feed = await client.RetrieveFeedAsync(feedUri);

ObservableCollectionBlogItem blogData = new ObservableCollectionBlogItem();

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!";

}

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

catch (Exception ex)

{

waitingText.Text = "Can"t load the page:" + ex.ToString(); } }

演示

运行程序点击Get Blogs按钮,现在应用已经通过异步方式获取Blog内容,这是我们可以点击Change Text来验证一下用户是否可以继续使用应该的其他功能。

点击Get Blogs后会出现Loading Blogs的字样,说明此事异步调用已经启动。

Windows 8应用开发之异步调用

在获取到博客内容前点击Change Text,刚才的文字会变为Please Waiting,说明当异步调用时用户仍然可以与应用进行交互。

image

异步调用完成后,文字部分又被更新为Completed!。

image

至此,关于异步调用的开发就完成了。本篇内容只是异步调用的一种类型,当然还有许多其他类型的API可以供大家使用,而且包含C#、VB、JS多种语言开发。

image

来源:http://www.tulaoshi.com/n/20160219/1630975.html

延伸阅读
标签: 电脑入门
当你在Windows8应用商店找应用时是不是会遇到一些很奇葩的应用呢?下面外媒Neowin就给大家开扒了,他看到的那些奇葩的Win8应用。 首先是一款游戏:《Football Throw Stopper》,外媒对这个游戏的评价是:蠢爆了。具体怎么玩就是通过点击足球来阻止它到达终点区域。Neowin表示,这个游戏实在是太无趣了,连动物都会觉得它很蠢。 说到动物,...
标签: 电脑入门
Win8系统中的应用商店包含丰富的新界面应用,用户可以方便的查找、下载和安装各种应用。不过由于Win8应用商店的应用缺省安装在系统盘,路径 不可更改,如果安装Win8系统时没有给系统盘留下足够大的空间,导致我们在不断安装新的Win8应用之后,Win8系统盘的剩余空间越来越小,不但影响 系统运行速度,甚至无法安装新的Win8应用。那么我们该如...
标签: windows系统
Windows8邮件应用使用攻略   一、准备工作 前期的准备工作,我们需要的是一台装有Windows8操作系统的设备和一个Microsoft账户。 二、打开Windows8邮件应用 首先在Windows8开始桌面中,找到并单击Windows8邮件应用磁贴。 第一次进入Windows8邮件应用时,会提示添加Microsoft账户,输入注册的Microsoft账...
标签: 电脑入门
Windows 8消费者预览版(Consumer Preview)Build 8250已经发布,这一版本已经是比较成熟的版本,安装体验的朋友相信一定不少,下面就给大家提供一些相关应用小技巧,希望可以让大家体验Windows 8各项功能的时候更为方便一些。 1、锁屏 启动之后,用户将首先看到Windows 8的锁屏界面,每当系统启动、恢复或登录的时候,锁屏就会出现。如果...
标签: 电脑入门
1) 关机 这个问题单拿出来有点搞笑,但确实有些朋友不知道,Windows 8中将开始菜单更换为metro界面,关机按钮也同样消失了,我们可以用一下几种方法实现关机: A. Alt+F4:快捷键,Windows界面下按Alt+F4即可弹出关机菜单 B. Win+I:打开设置,选择电源按钮关机、睡眠等 C. 桌面建立快捷方式,桌面右键新建-快捷方式,关机输入shutdown...

经验教程

335

收藏

15
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部