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服務要比較長的時間時,可以用異步調用做到不卡主線程。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM