在silverlight 2(Beta1) 中使用BackgroundWorker非常简单,下面是一个DEMO,用于执行从1累加到100.在累加过程中,SUM值会不断更新,当累加到100后,BackgroundWorker会在成功执行结束后调用一个 WCF服务来输出最终的运行信息,就像我们在下面这张图中看到的一样.
首先我们要创建一个WCF服务应用,用来返回指定的累加数据信息.相应名称为: CrossSiteCall_Server
因为要用到跨站调用,所以我们还要建立一个clientaccesspolicy.xml文件,并放在该项目的根目录下,其内容如下:
下面是相应的接口(Contract)及功能代码:
然后将web.config文件中的binding="wsHttpBinding" 改写成basicHttpBinding. 编译运行这个项目,并将最终的服务引用地址复制下来.
本DEMO中的链接地址:http://localhost:7501/Service.svc
[ServiceContract]
然后我们再去创建一个Silverlight Application 项目,并将其命名为:BackgroundWorker并在当前的silverlight项目中添加上面SVC地址的服务引用,并将其命名为Service.
下面就是相应的xaml代码,将它放入Page.xaml中:
<Grid x:Name="LayoutRoot" Background="White">