异步调用WebService
这里用Winform演示如何异步调用WebService。
首先在界面中拖入2个按纽,一个是同步,一个是异步,作为比较。新建立一个WebService,就用默认的HelloWorld方法来演示。
在Winform中添加对这个WebService的引用,button1(同步按纽)和button2(异步按纽)中的事件如下:
private void button1_Click(object sender, EventArgs e) { localhost.Service1 service = new AsyncWebService.localhost.Service1();string s = service.SayHello(); MessageBox.Show("Main do something..."); Thread.Sleep(3000); MessageBox.Show("Main done."); MessageBox.Show(s); } localhost.Service1 myService;private void button2_Click(object sender, EventArgs e) {//初始化WebService myService = new AsyncWebService.localhost.Service1();//给HelloWorld方法注册调用完成时执行的方法AsyncHelloWorldComplete myService.HelloWorldCompleted += new AsyncWebService.localhost.HelloWorldCompletedEventHandler(AsyncHelloWorldComplete);//开始异步调用 myService.HelloWorldAsync(); MessageBox.Show("Main do something..."); Thread.Sleep(3000); MessageBox.Show("Main done."); }//异步调用完成时执行的方法 private void AsyncHelloWorldComplete(object sender, AsyncWebService.localhost.HelloWorldCompletedEventArgs e) {string s = e.Result.ToString(); MessageBox.Show(s); }
在第二个按纽myService中有关于HelloWorld的有这几个:
1.HelloWorld 这是同步执行的方法
2.HelloWorldAsync 这是开始异步执行的方法
3.HelloWorldCompleted 这是HelloWorld方法执行完成的事件,以上给这个事件注册了一个委托HelloWorldCompletedEventHandler,可以右击》GoToDefinition查看这个委托,这个委托有2个参数:object sender, HelloWorldCompletedEventArgs e,对于第二个参数e.Result就是需要异步执行的WebService方法(HelloWorld()方法)的返回结果。
如果是在ASP.NET中异步执行的话,需要在页面属性中设置可以异步:Async="true"
使用javascript,Ajax(异步)调用WebService的方法参考:使用ASP.NET AJAX异步调用Web Service和页面中的类方法
转载于:https://www.cnblogs.com/johnsmith/archive/2011/09/30/2196126.html
异步调用WebService相关推荐
- xml提示无法连接到远程服务器,异步调用WebService时,如何捕捉“无法连接远程服务器”异常...
在winform窗体中调用webservice,过程如下: ①Form1中弹出Form2 Form2 form2 = new Form2(); form2.ShowDialoag(); ②Form2中 ...
- WebService大讲堂之Axis2(8):异步调用WebService
在前面几篇文章中都是使用同步方式来调用WebService.也就是说,如果被调用的WebService方法长时间不返回,客户端将一直被阻塞,直到该方法返回为止.使用同步方法来调用WebService ...
- asp.net中异步调用WebService(异步页)[转]
由于asp2.0提供了异步页的支持使异步调用WebService的性能有了真正的提升. 使用异步页,首先要设置Async="true",异步页是在Prerender和Prerend ...
- 异步调用WebService方式!
WebService方法是不需要作任何修改的,只是在调用时采用异步的方式,这样在循环中,速度会显得快一点. 原来的方式: HotelMagWeb.com.china_sms.www.MainServi ...
- 浅谈WebService开发二(同步与异步调用)转
上文 <http://www.dotnetgeek.cn/xuexiwebservice1.html>已经跟大家说了,如果创建一个webservice和简单的调用,本文将注重webserv ...
- C#调用WebService出现“基础连接已经关闭:接收时发生错误”错误
问题描述:C#通过调用WebService,实现ORACLE 数据库的远程备份,当备份数据量到达180G以上时,出现"基础连接已经关闭:接收时发生错误"错误,导致数据备份失败. 注 ...
- .NET2.0中,Winform程序如何异步调用Web Service呢?[Demo下载]——与.net1.1环境下比较...
最近在MSDN上看到一个在.NET1.1中Winform程序异步调用WebService的例子 我准备模仿着迁移到.NET2.0环境中,遗憾的是,一切不是那么简单. 首先,.net1.1中调用的Web ...
- 关于webservice的异步调用简单实例
于webservice的异步调用简单实例 无论在任何情况下,被调用方的代码无论是被异步调用还是同步调用的情况下,被调用方的代码都是一样的, 下面,我们就以异步调用一个webservice 为例作说明. ...
- php 不等待返回的实现方法(异步调用)
PHP异步执行的常用方式常见的有以下几种,可以根据各自优缺点进行选择: 1.客户端页面采用AJAX技术请求服务器 优点:最简单,也最快,就是在返回给客户端的HTML代码中,嵌入AJAX调用,或者,嵌入 ...
最新文章
- 2021年大数据Spark(十九):Spark Core的​​​​​​​共享变量
- JS高级程序设计拾遗
- Python3中的内置函数总结
- 雄鹰与蜗牛 2017-10-26
- 用innerHTML给textarea的value赋值,IE下丢失换行
- android webdav客户端,WebDAV精灵(WebDAV客户端)
- 日本研发高精度诊疗感应器,或颠覆疾病诊疗
- c++11新特性的使用---可变模板参数、lambda、type_traits、optional综合使用
- IE6/7下不同的inline-block
- Windows程序设计:使用VS2010创建窗口程序
- css标签选择器、类名选择器、多类名选择器
- 华为手机怎么查看ip 网关
- 微信小程序开发教程+工具插件
- latex如何设置字体并加粗_latex怎么把字加粗
- python聊天智能回复_【微信】设置自动回复消息和智能聊天
- 珠海金湾区红旗图书馆 WIFI 连接方法
- 易签指纹签到系统测试文档
- pc端签名 vue 生成图片_使用vue实现一个电子签名组件
- 花游双人、三级跳斩获金银
- Xiaojie雷达之路---雷达原理(二刷)相位法测角