Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

Silverlight中同步调用WebClient的解决办法,是同步!

来源:中文源码网    浏览:312 次    日期:2024-05-13 21:13:14
【下载文档:  Silverlight中同步调用WebClient的解决办法,是同步!.txt 】


Silverlight中同步调用WebClient的解决办法,是同步!
代码如下: 复制代码 代码如下: private void button2_Click(object sender, RoutedEventArgs e) { Service1Client sc = new Service1Client(); sc.DoWorkCompleted += new EventHandler(sc_DoWorkCompleted); sc.DoWorkAsync(textBox1.Text); } void sc_DoWorkCompleted(object sender, DoWorkCompletedEventArgs e) { textBox2.Text = e.Result; }
若是你的调用非常复杂的话,比如当这个调用完成的时候开始下一个调用,然后又进行下一个调用,各个调用之间存在关联关系的话,一直XX_DoWorkCompleted会让你头大,并且不利于代码的管理。若碰到过这样的问题的朋友一定很希望如果能够同步调用就好了,这篇文章将帮到你。或者现在不需要,等你需要的时候记得用就行了,别像我当初那样难为的不行。
主要是需要引用一个类库的问题,这个类库是外国人写的,名称为DanielVaughan.dll,下载完之后,首先需要在项目中添加对它的引用,如下图,
然后在程序中添加对两个空间的引用,如下图:将原来的添加botton1事件:复制代码 代码如下: private void button1_Click(object sender, RoutedEventArgs e) { string dd = textBox1.Text; string res = "NULL"; ThreadPool.QueueUserWorkItem(delegate { Service1 sv = ChannelManager.Instance.GetChannel(); /* Perform synchronous WCF call. */ res = SynchronousChannelBroker.PerformAction(sv.BeginDoWork, sv.EndDoWork, dd); Dispatcher.BeginInvoke(delegate { textBox2.Text +="\r\n同步调用--"+ res+"\r\n"; }); }); } 这样就可以实现对WebClient的同步调用了,当你需要关联调用WebClient3次以上的时候 可以考虑使用这个类库,如果只是简单的调用下的话,没有必要使用。 页面全部代码: 复制代码 代码如下:

相关内容