异步通信
来源:互联网 发布:linux的ip地址配置 编辑:程序博客网 时间:2024/05/25 23:57
.net framework使用IAsyncResult接口实例和事件两种异步操作的设计模式。ASP.NET的web服务同样支持这两种模式。
使用wsdl.exe工具生成的web服务代理类,除了提供直接同步调用Web服务的方法之外,还包含了SOAP交换信息协议的方法。这些方法提供了和Web服务交换数据的两种机制。
第一种是Begin/End机制。在使用wsdl.exe工具生成的、继承于SoapHttpClientProtocol类的类中,系统提供了两个使用异步调用Web服务的方法,即Begin<Web服务方法名称>和End<Web服务方法名称>。
应用程序在使用该类调用web服务时,首先调用Begin<Web服务方法名称>方法,该方法返回一个表示异步操作状态的IAsyncResult接口实例。在使用WaitHandle类,或者使用回调函数,得到Web服务执行完成的通知后,应用程序调用End<Web服务方法名称>方法,结束应用程序对Web服务的调用,并从Web服务返回处理的结果。在等待Web服务响应期间,应用程序在当前线程上可以执行其他操作。
使用WaitHandle类实例,实现Web服务基于Begin/End机制的异步通信时,Begin<Web服务方法名称>方法返回的IAsyncResult接口实例,包含了AsyncWaitHandle属性。该属性表示异步调用等待句柄的实例,提供了三种方法WaitOne、WaitAny、WaitAll来提供不同的等待方式,其中WaitOne等待当前Web服务调用线程处理完毕,WaitAny等待指定的Web服务调用数组的其中一个处理完毕,WaitAll等待指定Web服务调用数组的所有白处理完毕。
使用回调函数来实现Web服务基于Begin/End机制的异步通信时,通过wsdl.exe生成类的实例中包含的<Web服务方法名称>Callback方法,应用程序创建一个AsyncCallback委托的实例,再通过对该实例IsCompleted属性的查询,决定是否继续回调。
下面说明如何实现Begin/End机制异步通信的等待方法和回调方法,步骤如下。
- 异步通信
- 异步通信
- 同步通信 异步通信 概念
- 同步通信和异步通信
- 同步通信和异步通信
- 异步通信和同步通信
- 同步通信和异步通信
- 同步通信与异步通信
- 异步通信和同步通信
- 同步通信和异步通信
- 同步通信 VS 异步通信
- 异步通信和同步通信
- 串口通信-异步通信方式
- 同步通信与异步通信
- 同步通信与异步通信
- 异步通信and同步通信
- 同步通信和异步通信
- 同步通信和异步通信
- SQLite数据库
- shell 基础整理
- linux ubuntu IP配置
- SQLite数据库2
- 数据结构之【树形结构】复习题
- 异步通信
- spring 邮件发送 模板2
- Emacs使用gnus收发邮件时nnfolder相关介绍
- shell执行命令的方式
- PHP在页面间传递参数的四种方法
- android任务管理器(12项功能)
- 进myeclipse官网
- 数据结构之【图】部分复习题
- 获取网络数据,获取web服务器xml数据