博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Silverlight 5 RC新特性探索系列:13.Silverlight 5 RC 新增对并行任务库(TPL)的支持
阅读量:7102 次
发布时间:2019-06-28

本文共 1835 字,大约阅读时间需要 6 分钟。

    首先新建一个Silverlight 5项目,在其Web项目中添加一个新的xml文件helloWorld.xml。编写代码如下:
111
然后我们看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
(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();    }

    运行效果一致,如下两图,另外如需源码请点击 下载。

转载地址:http://xguhl.baihongyu.com/

你可能感兴趣的文章
Git 系列(二):初步了解 Git
查看>>
2M宽带多快
查看>>
JS常用正则表达式备忘录
查看>>
Phoenix三贴之二:Phoenix二级索引系统
查看>>
java中servletContextListener、httpSessionListener和servletRequestListener三者概述
查看>>
非本专业就当不了数据分析师?
查看>>
接口 (interface)
查看>>
solr搜索
查看>>
AngularDart Material Design 选择
查看>>
我的C盘空间满了,该怎么清理?
查看>>
ApplicationContext的事件机制
查看>>
Nginx安装、默认虚拟主机、用户认证、nginx中PHP解析
查看>>
20.5 shell脚本中的逻辑判断
查看>>
go 包依赖静态分析
查看>>
媒体转码截图和工作流场景常见问题【系列一】
查看>>
dubbo入门(1)——dubbo-demo
查看>>
聊聊SpringMVC(2)---SpringMVC之请求过程
查看>>
大型网站运维探讨和心得(转载)
查看>>
内网IP和外网IP的区别【图解】
查看>>
PHP 页面跳转的三种方式
查看>>