教程:使用WebService进行异步通信

通常在WEB应用程序中不会考虑到这个需求。做智能客户端的时候,当用到WebService时,由于服务器处理速度、网络传输速度等各种原因会使一个WebService从请求开始到获得响应结果之间等待一段时间,这时候线程会处于阻塞状态,程序会等待请求结果导致客户端无法进行其他的动作或处理。这时候就需要异步的使用WebService。 

  最容易被想到的方法当然是建立一个新的线程来执行WebService的请求并获得结果,这样就可以不影响程序的主线程的工作,并且也非常容易实现,但是在一个复杂的应用程序中,用户也许会同时请求多个webservice,这时候就得创建并控制多个线程。多线程的控制虽然可以实现很好的应用程序,但难度是比较大的,而且很容易引起异常。 

  在.net的SDK中实际上就有关于异步调用webservice的介绍和示例。其主要的工作原理和流程如下: 

方法一、

Code


方法二、

Code


方法一实现了请求和接收异步通信,运用起来比较灵活,工作的方法看起来也很像多线程的操作方式。 

  方法二虽然也实现了发送请求和接收结果异步通信,但是用在实际的程序中并没有达到所需要的效果。 

  详细的介绍请参看SDK中的描述

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [Asp.Net] 的这些文章也感兴趣:

System.Web.Routing入门及进阶 下篇
实时天气及24小时天气预报
.NET中实现无客户端联动菜单
不用编写客户端调试WebServices
加密网站配置文件中的信息
Retrieve data from a web page
DataGrid学习四
常见的ASP.NET2.0转换问题和解决方案
.NET程序内,访问私有或者保护成员的技巧
利用C#线程机制实现应用程序的单实例运行