Web服务异步调用实训

本文是一篇实训文章,例子简单,希望对初学者有所启示.

 

以webservice中经典的Helloworld为例子:

1.新建一个网站,选择ASP.NET web 服务,选择语言为C#,打开App_Code下的Service.cs文件,其他的都不变,只是在输出前添加一个System.Threading.Thread.Sleep(5000)用来等待.

  1. [WebMethod]
  2.     public string HelloWorld()
  3.     {
  4.         System.Threading.Thread.Sleep(5000);
  5.         return "Hello World";
  6.     }

2.运行WEB服务。

 

3.右击项目名,选择添加WEB引用,将运行的WEB服务的地址复制在要添加的地址栏中,引用名为localhost.添加引用.

我的地址是http://localhost:8224/Service.asmx,以下代码中自己替换下就可以了。

 

 

4.新建一个项目,选择windows应用程序,拖放一个按钮和一个文本框到FORM中,按钮该名为BtnSync.双击按钮,添加以下代码:

  1. private void BtnSync_Click(object sender, EventArgs e)
  2. {            
  3.             localhost.Service svr = new localhost.Service();
  4.             svr.Url = "http://localhost:8224/Service.asmx";
  5.             svr.HelloWorldCompleted += new localhost.HelloWorldCompletedEventHandler(svr_HelloWorldCompleted);
  6.             svr.HelloWorldAsync();        
  7. }
  8. private void svr_HelloWorldCompleted(object source,localhost.HelloWorldCompletedEventArgs e)
  9. {
  10.             TextBox1.Text = e.Result.toString();            
  11. }

5.运行应用程序,查看效果吧,在点击了按钮5秒中之后,在文本框中才回出现Hello World.

 

总结

在一些注重服务调用速度,而不考虑回调的参数时,或者仅仅对返回值做日志处理的时候.异步调用会发挥很大的作用.异步调用还有其他的方法,个人觉得事件驱动的方式简单明了。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值