WebService 同步调用,异步调用

阅读目录

  一:添加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服务要比较长的时间时,可以用异步调用做到不卡主线程。

 

posted @ 2015-09-28 13:18  cppwen  阅读(1973)  评论(4编辑  收藏  举报