Silverlight 5 RC新特性探索系列:13.Silverlight 5 RC 新增对并行任务库(TPL)的支持
在Silverlight 5 RC版本中新增了对并行任务库(Task Parallel Library)的支持,Task Parallel Library简称TPL,它是指一个或者多个任务同时运行,类似线程或者线程池。在本例中将会以并行任务库和异步获取数据进行对比。相关资料可以看http://msdn.microsoft.com/en-us/library/dd537609.aspx和http://www.cnblogs.com/vwxyzh/tag/TPL/
首先新建一个Silverlight 5项目,在其Web项目中添加一个新的xml文件helloWorld.xml。编写代码如下:
- <?xml version="1.0" encoding="utf-8" ?>
- <a>111</a>
然后我们看Silverlight 4及之前的版本中如何异步获取数据,其代码如下:
- //SL4异步获取结果
- private void SL4InitiateWebRequest()
- {
- HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://localhost:12887/helloWorld.xml");
- request.BeginGetResponse(new AsyncCallback(onRequestComplete), request);
- }
- private void onRequestComplete(IAsyncResult asynchronousResult)
- {
- HttpWebRequest request = asynchronousResult.AsyncState as HttpWebRequest;
- HttpWebResponse response = request.EndGetResponse(asynchronousResult) as HttpWebResponse;
- var s = response.GetResponseStream();
- var reader = new StreamReader(s);
- string xmlFileText = reader.ReadToEnd();
- this.Dispatcher.BeginInvoke(() => { MessageBox.Show("这是SL4获取Xml数据:"+xmlFileText); });
- }
然后我们再看通过TPL来异步获取数据,当然这之前需要using System.Threading.Tasks。
- //silverlight 5并行计算
- private void SL5InitiateWebRequest()
- {
- string uri = "http://localhost:12887/helloWorld.xml";
- var request = HttpWebRequest.Create(uri);
- var webTask = Task.Factory.FromAsync<WebResponse>(request.BeginGetResponse,
- request.EndGetResponse,TaskCreationOptions.None)
- .ContinueWith(task =>
- {
- var response = (HttpWebResponse)task.Result;
- var stream = response.GetResponseStream();
- var reader = new StreamReader(stream);
- string xmlFileText = reader.ReadToEnd();
- this.Dispatcher.BeginInvoke(() => { MessageBox.Show("这是SL5获取Xml的数据:" + xmlFileText); });
- });
- }
最后我们客户端调用上面的两种方式来获取数据。
- public MainPage()
- {
- InitializeComponent();
- //调用普通异步
- SL4InitiateWebRequest();
- //并行任务库
- SL5InitiateWebRequest();
- }
运行效果一致,如下两图,另外如需源码请点击SL5Ansyc.zip 下载。
转载于:https://blog.51cto.com/chengxingliang/827058
Silverlight 5 RC新特性探索系列:13.Silverlight 5 RC 新增对并行任务库(TPL)的支持相关推荐
- Silverlight 5 RC新特性探索系列:12.Silverlight 5 RC 窗口模式下访问自定义DLL和WIN32 API...
在Silverlight 5 RC版本中针对访问权限进行了相应的提升,它的项目属性中新增了一个复选框"在浏览器内运行时需要提升的信任",如下图: 它将为在浏览器模式下运行的应用程序 ...
- Silverlight 5 beta新特性探索系列:9.视频快进快退和TextSearch对象对文字项查询
本节讲诉两个新特性:一.在Silverlight 5中可以控制MediaElement对象播放的视频进行快进快退控制.二.在Silverlight 5中的文字项进行搜索查询. 一.对于MediaEle ...
- Silverlight 5 beta新特性探索系列:3.Silverlight5中的文字增进控制【附带实例源码】...
在Silverlight 5中新增了CharacterSpacing属性对文字间距进行控制,增加了RichTextBoxOverflow控件以灵活的对大量文字进行合理的排版显示. 一.Characte ...
- Spring.NET 1.3.1 新特性探索系列1——ASP.NET MVC的依赖注入
Spring.NET 1.3.1的程序集Spring.Web.Mvc提供对ASP.NET MVC程序的整合.其中SpringControllerFactory类继承自DefaultController ...
- Spring.NET 1.3.1 新特性探索系列2——WCF命名空间解析器
Spring.NET对分布式程序的支持是有目共睹的.在1.3.1之前的版本,对Remoting和Webservice支持的很好,并且有其对应的解析器,但对WCF支持的不是很完美.然而1.3.1版本加入 ...
- Silverlight 5 Beta新特性[4]文本缩进控制
持续带来Silverlight 5 Beta新特性的更新.在Silverlight 5 Beta版本对文本的处理能力做了真正的改进.其中从官方Silverlight 5 Beta Futurez中提到 ...
- 【转】Silverlight 3 Beta 新特性解析(7)- Child Window和Shader Effect篇
前提条件: 阅读本文之前请确认你已经安装了如下软件 Visual Studio 2008 (Express) SP1 Silverlight 3 Tools For Visual Studio Mic ...
- Silverlight 5 Beta 新特性预览
MIX11大会昨天刚刚结束.第二天核心Session包含三个部分:Windows phone 7/Silverlight 5 Beta/Kinect for Windows SDK.在整个全程直播中. ...
- oracle 10g delete flashback,10g新特性,flashback系列 来自piner
一 Flashback database falshback database是采用日志 falsgback drop是采用表空间的空间 其它的都是与undo有关... fashback是我对10g一 ...
最新文章
- android中menu菜单扩增_【已解决】Android添加Menu菜单
- Windows Service 2008 R2 远程桌面关闭,自动注销的解决方法
- python语言程序设计教程-Python语言程序设计(视频教程)
- 如何改变Myeclipse编辑区背景色
- TCP/IP / PDU 是什么
- oracle 绑定变量模糊查询,求助-ACTIVE DG 异常shutdown
- [SQL实战]之获取所有部门中当前员工薪水最高的相关信息
- 【思科模拟器基本使用】
- 移动互联网创新39个热点
- nested exception is java.lang.NumberFormatException: For input string: NaN
- 计算机的串口波特率,串口常用参数
- 今日睡眠质量记录77分
- 计算机编程入门语言哪个好?
- IntelliJ IDEA 项目相关的几个重要概念介绍
- 一个字符导致oracle安装出现ora-12154
- 《GhostXP_SP2电脑公司特别版_v8.5》
- 微信小程序和野狗数据库结合
- 关于网络关键节点分析的经典论文(一)
- 《分销商开发、维护与管理》--王越老师
- CVPR传捷报丨深兰科技再度折桂,连续4届获得CVPR挑战赛冠军
热门文章
- Codeforces 769D k-Интересные пары чисел
- 怎样将python的文件转化为windows的可执行程序
- Eclipse中设置在创建新类时自动生成注释的方法
- ArcGIS AddIN开发异常之--修饰符“static”对该项无效
- 深入ASP.NET数据绑定(中)——数据双向绑定机理
- 通往自由之路 | 云队友远程办公征文活动
- 【干货】专注用户体验,用最小代价验证你想法的可执行性
- 如何使 highchart图表标题文字可选择复制
- 图解设计模式-Abstract Factory模式
- MongoDB安装与副本集配置