码迷,mamicode.com
首页 > Web开发 > 详细

WebService 同步调用,异步调用

时间:2015-09-28 14:26:56      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:

阅读目录

  一:添加WebService服务

  二:添加“客户程序”(这里用winform)用于调用WebService服务

  三:异步调用过程解释

 

     一:添加WebService服务

  1、添加一个空网站项目,2、在项目里面添加一个WebService服务(WebServiceTest.asmx),3、添加“HelloWorld”方法

代码:(WebServiceTest.asmx)

 

技术分享
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Web;
using System.Web.Services;

namespace t1_WebService
{
    /// <summary>
    /// WebServiceTest 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
    // [System.Web.Script.Services.ScriptService]
    public class WebServiceTest : System.Web.Services.WebService
    {

        [WebMethod]
        public string HelloWorld(int a,int b)
        {
            //等待5秒
            Thread.Sleep(5000);
            return (a + b).ToString();
        }
    }
}
View Code

二:添加“客户程序”(这里用winform)用于调用WebService服务

  1、添加一个WinForm项目。

  2、添加“引用服务(WebService服务)”

技术分享技术分享

 

  3、添加一个WinForm窗体

  技术分享

  4、在BtnAdd写调用的代码如下

技术分享
        private void button1_Click(object sender, EventArgs e)
        {
            
            ServiceReferenceTest.WebServiceTestSoapClient client = new ServiceReferenceTest.WebServiceTestSoapClient();
            
            int a = int.Parse(tbxA.Text);
            int b = int.Parse(tbxB.Text);

            //同步调用
            //tbxResult.Text = client.HelloWorld(a, b);


            //下面是异步调用

            //注册回调事件
            client.HelloWorldCompleted += client_HelloWorldCompleted;

            //调用异步方法
            client.HelloWorldAsync(a, b);
            


        }

        void client_HelloWorldCompleted(object sender, ServiceReferenceTest.HelloWorldCompletedEventArgs e)
        {
            //回调事件触发,返回结果
            tbxResult.Text = e.Result;
        }
View Code

 

 PS:上面有同步调用(已注释掉)和异步调用 。

 在调用WebService服务要比较长的时间时,可以用异步调用做到不卡主线程。

技术分享

 

WebService 同步调用,异步调用

标签:

原文地址:http://www.cnblogs.com/cppwen/p/4843785.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!