这里用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相关推荐

  1. xml提示无法连接到远程服务器,异步调用WebService时,如何捕捉“无法连接远程服务器”异常...

    在winform窗体中调用webservice,过程如下: ①Form1中弹出Form2 Form2 form2 = new Form2(); form2.ShowDialoag(); ②Form2中 ...

  2. WebService大讲堂之Axis2(8):异步调用WebService

     在前面几篇文章中都是使用同步方式来调用WebService.也就是说,如果被调用的WebService方法长时间不返回,客户端将一直被阻塞,直到该方法返回为止.使用同步方法来调用WebService ...

  3. asp.net中异步调用WebService(异步页)[转]

    由于asp2.0提供了异步页的支持使异步调用WebService的性能有了真正的提升. 使用异步页,首先要设置Async="true",异步页是在Prerender和Prerend ...

  4. 异步调用WebService方式!

    WebService方法是不需要作任何修改的,只是在调用时采用异步的方式,这样在循环中,速度会显得快一点. 原来的方式: HotelMagWeb.com.china_sms.www.MainServi ...

  5. 浅谈WebService开发二(同步与异步调用)转

    上文 <http://www.dotnetgeek.cn/xuexiwebservice1.html>已经跟大家说了,如果创建一个webservice和简单的调用,本文将注重webserv ...

  6. C#调用WebService出现“基础连接已经关闭:接收时发生错误”错误

    问题描述:C#通过调用WebService,实现ORACLE 数据库的远程备份,当备份数据量到达180G以上时,出现"基础连接已经关闭:接收时发生错误"错误,导致数据备份失败. 注 ...

  7. .NET2.0中,Winform程序如何异步调用Web Service呢?[Demo下载]——与.net1.1环境下比较...

    最近在MSDN上看到一个在.NET1.1中Winform程序异步调用WebService的例子 我准备模仿着迁移到.NET2.0环境中,遗憾的是,一切不是那么简单. 首先,.net1.1中调用的Web ...

  8. 关于webservice的异步调用简单实例

    于webservice的异步调用简单实例 无论在任何情况下,被调用方的代码无论是被异步调用还是同步调用的情况下,被调用方的代码都是一样的, 下面,我们就以异步调用一个webservice 为例作说明. ...

  9. php 不等待返回的实现方法(异步调用)

    PHP异步执行的常用方式常见的有以下几种,可以根据各自优缺点进行选择: 1.客户端页面采用AJAX技术请求服务器 优点:最简单,也最快,就是在返回给客户端的HTML代码中,嵌入AJAX调用,或者,嵌入 ...

最新文章

  1. 2021年大数据Spark(十九):Spark Core的​​​​​​​共享变量
  2. JS高级程序设计拾遗
  3. Python3中的内置函数总结
  4. 雄鹰与蜗牛 2017-10-26
  5. 用innerHTML给textarea的value赋值,IE下丢失换行
  6. android webdav客户端,WebDAV精灵(WebDAV客户端)
  7. 日本研发高精度诊疗感应器,或颠覆疾病诊疗
  8. c++11新特性的使用---可变模板参数、lambda、type_traits、optional综合使用
  9. IE6/7下不同的inline-block
  10. Windows程序设计:使用VS2010创建窗口程序
  11. css标签选择器、类名选择器、多类名选择器
  12. 华为手机怎么查看ip 网关
  13. 微信小程序开发教程+工具插件
  14. latex如何设置字体并加粗_latex怎么把字加粗
  15. python聊天智能回复_【微信】设置自动回复消息和智能聊天
  16. 珠海金湾区红旗图书馆 WIFI 连接方法
  17. 易签指纹签到系统测试文档
  18. pc端签名 vue 生成图片_使用vue实现一个电子签名组件
  19. 花游双人、三级跳斩获金银
  20. Xiaojie雷达之路---雷达原理(二刷)相位法测角

热门文章

  1. 1.6 语言模型和序列生成
  2. Linux tar命令
  3. Linux安装包下载地址(国内)
  4. php tomcat配置_php+tomcat 配置运行环境
  5. 3dmax高版本转低版本插件_3dmax高版本和低版本中视口配置如何去阴影
  6. 15个示例让你搞懂Linux中的cd命令
  7. IDC机房对接阿里云
  8. 比较从 vSphere 5.x 到 vSphere 6.5 的各个版本
  9. Oracle学习总结(5)—— SQL语句经典案例
  10. JAVA敏捷开发环境搭建