zoukankan      html  css  js  c++  java
  • 异步调用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和页面中的类方法

  • 相关阅读:
    c# linq查询的等于大于符号是什么意思?
    c# Socket tcpClient处理连接超时方式timeout
    不同网段服务器与客户端连接问题解决方法TCP/IP_C/S
    Http请求响应及SpringMVC相关注解解析
    Nginx部署项目,转发规则,负载均衡配置
    Linux redis设置后台启动
    Linux centos7安装Jdk nginx redis
    SpringCloud整合SpringSecurity JWT进行认证 ,鉴权
    C#中class与struct的区别概述
    列举ASP.NET 页面之间传递值的几种方式
  • 原文地址:https://www.cnblogs.com/johnsmith/p/2196126.html
Copyright © 2011-2022 走看看