閱讀目錄
一:添加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(); } } }
二:添加“客戶程序”(這里用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; }
三:異步調用過程解釋
PS:上面有同步調用(已注釋掉)和異步調用 。
在調用WebService服務要比較長的時間時,可以用異步調用做到不卡主線程。
