webservice异步调用其实很简单,当客户端添加了webservice的引用之后会由系统自动生成一段代码,这段自动生成的代码中有同步方法和异步方法,还会提供一个异步完成后事件,以便在异步结束后做相关处理。贴一段代码截图就知道了。
每一个红色圈圈代表着一个公开的webservice接口,每个接口代码自动生成了5个方法。调用异步方法的时候:
WebService1 service = new WebService1();
service.AnsyTestAsync();
加异步完成事件的话就这样写
service.AnsyTest2OperationCompleted+=new XXXXXXXXhandler(绑定一个方法MethodA);
绑定方法实现
public void MethodA(object a,XXXXXXXXXXXargs e)
{
在e参数里面可以拿到调用service.AnsyTestAsynv()方法的返回值。
拿到返回值做一系列操作。
}
使用异步的好处就是,如果调用接口计算量很大,在客户端不会卡死。而同步方法会等待计算完毕,客户端有可能崩溃用户体验很差。
总结:
webservice的异步比一般的客户端异步简单多了。webservice的异步方法当你添加web引用的时候就自动生成了,我们直接使用就可以了,而一般的异步我们自己还要写new Thread()。